 # mrslwiseman's solution

## to Resistor Color Duo in the JavaScript Track

Published at Dec 04 2019 · 0 comments
Instructions
Test suite
Solution

#### Note:

This exercise has changed since this solution was written.

If you want to build something using a Raspberry Pi, you'll probably use resistors. For this exercise, you need to know two things about them:

• Each resistor has a resistance value.
• Resistors are small - so small in fact that if you printed the resistance value on them, it would be hard to read.

To get around this problem, manufacturers print color-coded bands onto the resistors to denote their resistance values. Each band has a position and a numeric value. For example, if they printed a brown band (value 1) followed by a green band (value 5), it would translate to the number 15.

In this exercise you are going to create a helpful program so that you don't have to remember the values of the bands. The program will take color names as input and output a two digit number, even if the input is more than two colors!

The colors are mapped to the numbers from 0 to 9 in the sequence: Black - Brown - Red - Orange - Yellow - Green - Blue - Violet - Grey - White

From the example above: brown-green should return 15 brown-green-violet should return 15 too, ignoring the third color.

## Setup

Go through the setup instructions for Javascript to install the necessary dependencies:

https://exercism.io/tracks/javascript/installation

## Requirements

Install assignment dependencies:

``````\$ npm install
``````

## Making the test suite pass

Execute the tests with:

``````\$ npm test
``````

In the test suites all tests but the first have been skipped.

Once you get a test passing, you can enable the next one by changing `xtest` to `test`.

## Source

Maud de Vries, Erik Schierboom https://github.com/exercism/problem-specifications/issues/1464

## Submitting Incomplete Solutions

It's possible to submit an incomplete solution so you can see how others have completed the exercise.

### resistor-color-duo.spec.js

``````import { value } from './resistor-color-duo.js';

describe('Resistor Colors', () => {
test('Brown and black', () => {
expect(value(['brown', 'black'])).toEqual(10);
});

xtest('Blue and grey', () => {
expect(value(['blue', 'grey'])).toEqual(68);
});

xtest('Yellow and violet', () => {
expect(value(['yellow', 'violet'])).toEqual(47);
});

xtest('Orange and orange', () => {
expect(value(['orange', 'orange'])).toEqual(33);
});

xtest('Ignore additional colors', () => {
expect(value(['green', 'brown', 'orange'])).toEqual(51);
})
});``````
``````export const value = ([firstColour, secondColour]) => {
const COLOUR_ARRAY = [
'black',
'brown',
'red',
'orange',
'yellow',
'green',
'blue',
'violet',
'grey',
'white'
];
return Number(
[firstColour, secondColour]
.map(colour =>
COLOUR_ARRAY.indexOf(colour)
)
.join('')
);
}``````