【发布时间】:2018-11-28 13:33:43
【问题描述】:
ES6中嵌套数组的软失效如何管理?
假设我们有一个包含项目的嵌套数组,我们想要获取第一个项目:
const array = [[3,4,5,6]];
const [[firstItem]] = array; // firstItem = 3
console.log(firstItem);
我想防止数组带有null的情况,但显然它与处理对象软失败的工作方式不同:
const array = [null];
const [[firstItem] = []] = array; // Uncaught TypeError: array is not iterable
console.log(firstItem);
【问题讨论】:
-
我得到了
undefined,正如预期的那样...... -
这里相同 - 如果我执行
const [[firstItem = []]] = array,我只会得到TypeError: array is not iterable(将firstItem设置为空数组而不是嵌套数组) -
对不起,我意识到只有当数组的第一个元素是
null时它才起作用。更新了我的问题。 -
null阻止分配使用其默认值。所以它总是会尝试解构null。我不知道这里是否值得使用,但是你可以使用 Proxy 来控制分配;
标签: javascript arrays ecmascript-6 destructuring