Quiero convertir el siguiente objeto
const order = { apple: 5, banana: 5, orange: 5 };en el siguiente objeto, a cada tecla se le asigna su índice en el objeto como su valor
{ apple: 0, banana: 1, orange: 2 }Este es el código que tengo pero no funciona y no sé por qué.
const indices = Object.keys(order).reduce( (previousValue, currentValue, currentIndex) => (previousValue[currentValue] = currentIndex), {} ); TypeError: Cannot create property 'banana' on number '0'¿Qué estoy haciendo mal aquí?
Se espera que el reductor devuelva el acumulador:
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);const order = { apple: 5, banana: 5, orange: 5, }; const mapByIndex = (obj) => { return Object.keys(obj).reduce((acc, curr, i) => { return { ...acc, [curr]: i, }; }, {}); }; console.log(mapByIndex(order)); // -> { apple: 0, banana: 1, orange: 2 }