ES6嵌套数组破坏软故障

时间:2018-06-19 14:30:29

标签: javascript arrays ecmascript-6

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

2 个答案:

答案 0 :(得分:1)

来自destructuring assignment

  

默认值

     

如果从数组解压缩的值为undefined,则可以为变量分配默认值。

您将null作为值,而不是undefined

const array = [undefined];
const [[firstItem] = []] = array; // Uncaught TypeError: array is not iterable

console.log(firstItem);

答案 1 :(得分:0)

您可以通过以下方法确保firstItem在默认情况下始终为空数组(除非您传递null值):

const array = [];
const [[firstItem = []] = [] ] = array;

console.log(firstItem)

const array = [[1]];
const [[firstItem = []] = [] ] = array;

console.log(firstItem)