0

How to destructure array inside object in js?

let data = {
   names: ["Sam", "Tom", "Ray", "Bob"],
   ages: [20, 24, 22, 26],
};
let /* some code */ = data;
console.log(name2); // "Tom"
console.log(age2); // 24
console.log(name4); // "Bob"
console.log(age4); // 26
SIkaro
  • 11
  • 3

3 Answers3

1

    let data = {
       names: ["Sam", "Tom", "Ray", "Bob"],
       ages: [20, 24, 22, 26],
    };
    console.log(data.names[0]); // "Sam"
    console.log(data.ages[0]); // 20
    console.log(data.names[3]); // "Bob"
    console.log(data.ages[3]); // 26
   
1

Since they're arrays you need to use [], not {} in the destructure to mirror the original data structure.

const data = {
   names: ["Sam", "Tom", "Ray", "Bob"],
   ages: [20, 24, 22, 26],
};

const {
  names: [ , name2, , name4 ],
  ages: [ , age2, , age4 ]
} = data;

console.log(name2);
console.log(age2);
console.log(name4);
console.log(age4);
Andy
  • 61,948
  • 13
  • 68
  • 95
0

You need to use the variable names in the same structure for destructuring.

const
    data = {
       names: ["Sam", "Tom", "Ray", "Bob"],
       ages: [20, 24, 22, 26],
    },
    {
        names: [name1, name2, name3, name4],
        ages: [age1, age2, age3, age4]
    } = data;


console.log(name2); // "Tom"
console.log(age2); // 24
console.log(name4); // "Bob"
console.log(age4); // 26
Nina Scholz
  • 376,160
  • 25
  • 347
  • 392