Array to object function using JavaScript

Viewed 34

For the function Objectgenerator(input1, input2), take arrays as input. Each array must have only two elements. The goal is to use JavaScript to create an object that will have the first elements of each array as the key and the second element as the value. In the event more than one array has similar first elements, then consider only the value of the last one. For example:

Examples:

Objectgenerator(["key1","value1"], ["key2","value2"],["key1","value3"]) would result in the following output --> {key1:"value3", key2:"value2"}

Objectgenerator(["Key1","value1"],["key2","value2"]) --> {key1:"value1",key2:"value2"}

Errors would result if the following parameters are passed:

Objectgenerator([])
Objectgenerator()
Objectgenerator('testing')
Objectgenerator(22)
Objectgenerator(['key1','valuea','valueb'],['key2','valuec'])
1 Answers

Basically, Array#reduce is your best bet. Setting it up is straight forward. The actual work is in verifying that the input is valid.

function objectGenerator(...arr) {
    if( arr.length && 
        arr.every(el => Array.isArray(el) && el.length === 2) ) {
        return arr.reduce((obj, [key,value]) => ({...obj,[key]:value}),{});
    } else {
        const err = new Error('Input is not valid');
        throw err;
    }
}

console.log( objectGenerator(["key1","value1"], ["key2","value2"],["key1","value3"]) );

console.log( objectGenerator(["Key1","value1"],["key2","value2"]) );

Related