【问题标题】:Problem with JavaScript destructuring understandingJavaScript 解构理解的问题
【发布时间】:2020-10-25 15:53:51
【问题描述】:

我希望从下面的 JavaScript 中得到 [1,2,3,4] 但我没有定义。

const {
  speakers: {
    datalist: { xxx },
  },
} = {
  speakers: {
    datalist: [1, 2, 3, 4],
  },
};
console.log(xxx);

【问题讨论】:

  • 你想要datalist: xxx

标签: javascript ecmascript-6 destructuring


【解决方案1】:

当你这样做时

datalist: { xxx },

您告诉 JS 将 datalistxxx 属性放入名为 xxx 的独立变量中。但是[1, 2, 3, 4] 数组上不存在xxx 属性。

如果代码是这样的就可以了:

const {
  speakers: {
    datalist: { xxx },
  },
} = {
  speakers: {
    datalist: {
      xxx: [1, 2, 3, 4],
    }
  },
};
console.log(xxx);

或者:

const {
  speakers: {
    datalist
  },
} = {
  speakers: {
    datalist: [1, 2, 3, 4],
  },
};
console.log(datalist);

但是这种嵌套的解构很难阅读。考虑避免它,以免出现此类问题:

const obj ={
  speakers: {
    datalist: [1, 2, 3, 4],
  },
};
const { datalist } = obj.speakers;
console.log(datalist);

【讨论】:

  • const { speakers: { datalist: xxx } } = objconst xxx = obj.speakers.datalist
猜你喜欢
  • 2020-07-20
  • 2023-03-23
  • 2014-04-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-22
  • 2011-08-21
相关资源
最近更新 更多