javascript - JavaScript 解构理解的问题
问题描述
我希望从下面的 JavaScript 中我会得到 [1,2,3,4] 但我没有定义。
const {
speakers: {
datalist: { xxx },
},
} = {
speakers: {
datalist: [1, 2, 3, 4],
},
};
console.log(xxx);
解决方案
当你这样做
datalist: { xxx },
您是在告诉 JS 将 的xxx
属性datalist
放入一个名为xxx
. 但是数组xxx
上不存在任何属性。[1, 2, 3, 4]
如果代码是这样的,它会起作用:
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);
推荐阅读
- php - 只在首页隐藏wp_head()
- javascript - LoopbackJS 获取经过身份验证的 UserId 以存储在模型中,而不通过 API 公开它
- firebase - Firebase DB:如何获取数据更新时间戳?
- ruby - Rails 中的迁移返回找不到表错误
- excel - 如何计算唯一的呼叫者数量(按代理)但如果呼叫者存在于另一个代理名称下的另一个表上,那么不要将其视为他的呼叫者?
- c# - 从 URL 读取 XML 数据
- go - 创建处理程序是如何工作的?
- asynchronous - Vuex 状态更改不会触发页面上的反应
- runtime-error - 如何配置 alfresco 以运行脚本任务
- python - 在 Python 中,range(1, 100, *10) 不起作用?