【问题标题】:How to destructure array inside object in js? [duplicate]如何在js中解构对象内部的数组? [复制]
【发布时间】:2023-02-17 20:43:13
【问题描述】:

如何在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

我一直在尝试这样的事情 let {names:{,name 2, , name 4}, ages:{,age 2, age 4}} = data; 但看起来还差得远

【问题讨论】:

  • 为什么不简单地:console.log( data.names[1] )?为什么需要解构?

标签: javascript destructuring object-destructuring


【解决方案1】:

由于它们是数组,您需要在解构中使用 [],而不是 {} 以反映原始数据结构。

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);

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      您需要使用同一结构中的变量名进行解构。

      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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-08-13
        • 1970-01-01
        • 2017-11-04
        • 1970-01-01
        • 2021-09-06
        • 2015-10-05
        • 1970-01-01
        • 2017-07-19
        相关资源
        最近更新 更多