Jak dostać się za pomocą destrukturyzacji do właściwości dziecka

0
const carObjArray = [
  {
    id: '1',
    name: 'bmw',
    color: 'yellow',
    price: '2137',
    params: {
      maxSpeed: 200,
      test1: 'test',
      childParams: {
        minSpeed: 72,
        testChildParam1: [{ name: 1, age: 20 }, { name: 2, age: 25 }],
        testChildParam2: { test5: 'test5' }
      }
    }
  },
  {
    id: '2',
    name: 'bentley',
    color: 'black',
    price: '7331',
    params: {
      maxSpeed: 300,
      test1: 'test'
    }
  },
  {
    id: '3',
    name: 'tesla',
    color: 'green',
    price: '420',
    params: {
      maxSpeed: 1000,
      test1: 'test'
    }
  }
];

Potrzebuje za pomocą destrukturyzacji dostać się do elementu age w testChildParam1, jestem aktualnie na params: { maxSpeed }, dalej niewiem jak się poruszać i stąd też moje pytanie jak dostać się do tych elementów.

Dziekuje i pozdrawiam!

2

ale który age? Jeśli pierwszy to:

var [{params: {childParams: {testChildParam1: [{age}]}}}] = carObjArray;

console.log(age); // 20

jesli każdy to potrzebujesz pętli wewnątrz testChildParam1 więc musisz podwójnie destrukturyzować:

carObjArray.map(
    ({params: {childParams: {testChildParam1 = []} = {}}}) =>
        testChildParam1.map(({age}) => age))

Destrukturyzacja jest bardzo prosta, po prostu definiujesz obiekt tak jak byś to zrobił normalnie, tylko usuwasz wartości z tego co chcesz wyłuskać, ewentualnie zamiast wartości podajesz nazwę zmiennej pod którą chcesz coś zapisać, np:

var [
  {
    name,
    params: {
      maxSpeed
    }
  },
  {
    name: name2,
    params: {
      maxSpeed: maxSpeed2
    }
  },
  {
    name: name3,
    params: {
      maxSpeed: maxSpeed3
    }
  }
] = carObjArray;

console.log(`${name} ${maxSpeed} / ${name2} ${maxSpeed2} / ${name3} ${maxSpeed3}`); // bmw 200 / bentley 300 / tesla 1000

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