I want to turn the following object
const order = {
apple: 5,
banana: 5,
orange: 5
};
into the following object, with each key being assigned its index in the object as its value
{
apple: 0,
banana: 1,
orange: 2
}
This is the code I have but it’s not working and I don’t know why.
const indices = Object.keys(order).reduce(
(previousValue, currentValue, currentIndex) =>
(previousValue[currentValue] = currentIndex), {}
);
TypeError: Cannot create property 'banana' on number '0'
What am I doing wrong here?
>Solution :
Reducer is expected to return the accumulator:
const order = {
apple: 5,
banana: 5,
orange: 5
};
const indices = Object.keys(order).reduce(
(previousValue, currentValue, currentIndex) => {
previousValue[currentValue] = currentIndex;
return previousValue; // <-- this was missing in your attempt.
}, {}
);
console.log(indices);