Reduce i tworzenie obiektu z tablicy obiektów

0

Cześć, pomógłby ktoś ogarnąć jak z tablicy obiektów mam wyciągnąć do obiektu id: nazwa auta, męczę się trochę podczas nauki reduce i szczerze nie mam pojęcia jak to zrobić, z góry dzięki za pomoc!

const carObjArray = [
  {
    id: '1',
    name: 'bmw',
    color: 'yellow',
    price: '2137'
  },
  {
    id: '2',
    name: 'bentley',
    color: 'black',
    price: '7331'
  },
  {
    id: '3',
    name: 'tesla',
    color: 'green',
    price: '420'
  }
];

const newCarsObj3 = cars.reduce(
  (a, b) => ({
    ...a,
    [Object.keys(a).id]: b
  }),
  {}
);

console.log(newCarsObj3);
3
const newCarsObj3 = carObjArray.reduce(
  (acc, car) => ({
    ...acc,
    [car.id]: car.name
  }), {});

Nie masz takiego obiektu jak cars. Masz tablicę carObjArray. Natomiast acc to początkowy obiekt {}, a wyrażenie [car.id]: car.name dodaje do niego właściwość o nazwie takiej, jaką ma wartość car.id, a wartość właściwości to car.name.

1

Co się tak uparłeś na ten reduce? On ma swoje miejsce, raczej się nie jest najlepszym wyborem do rzeczy, które chcesz robić.

Object.fromEntries(carObjArray.map(car => [car.id, car.name]))

0
szatkus napisał(a):

Co się tak uparłeś na ten reduce? On ma swoje miejsce, raczej się nie jest najlepszym wyborem do rzeczy, które chcesz robić.

Jak to twierdzą w Haskellu, każda iteracja da się zapisać foldem, czyli reduce'em... :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1