I have an array of objects. I need to make an object so that I can fetch the name based on an id.
const drinks = [
{ _id: "5fe40ad4d2e6e6de85c46a6c", name: "Americano", __v: 0 },
{ _id: "5fe40ad4d2e6e6de85c46a6d", name: "Latte", __v: 0 },
{ _id: "5fe40ad4d2e6e6de85c46a6e", name: "Flat White", __v: 0 }
];
I tried this which almost works:
console.log(drinks.reduce(
(accumulator, currentValue) =>
Object.assign(accumulator, accumulator[currentValue._id] = currentValue.name), {}));
However it outputs:
Object {
0: "F", 1: "l", 2: "a", 3: "t", 4: " ", 5: "W", 6: "h", 7: "i", 8: "t", 9: "e",
5fe40ad4d2e6e6de85c46a6c: "Americano",
5fe40ad4d2e6e6de85c46a6d: "Latte",
5fe40ad4d2e6e6de85c46a6e: "Flat White"
}
I need:
Object {
5fe40ad4d2e6e6de85c46a6c: "Americano",
5fe40ad4d2e6e6de85c46a6d: "Latte",
5fe40ad4d2e6e6de85c46a6e: "Flat White"
}
Why is my function also breaking down one of the values into characters?