MDN documentation关于数组解构是不言自明的,但是,我无法理解像这样解构数组时幕后发生的事情:
let Arr = [1, 3, 5, 6];
let newArr = [];
[newArr[0], ...newArr] = Arr;
console.log(Arr); // returns [1, 3, 5, 6]
console.log(newArr); // returns [3, 5, 6]
newArr
怎么没有继承Arr
的第一个数组成员呢?
最佳答案
如果你有
[x, ...y] = Arr;
好像是
x = Arr[0];
y = Arr.slice(1);
所以当你有
[newArr[0], ...newArr] = Arr;
好像是
newArr[0] = Arr[0];
newArr = Arr.slice(1);
解构中涉及的赋值从左到右发生。直播:
const listener = {
get foo() {
return {
set bar(value) {
console.log('setting bar');
},
};
},
set foo(value) {
console.log('setting foo');
},
};
[listener.foo.bar, ...listener.foo] = [1, 2, 3];
关于javascript - 通过展开运算符进行数组解构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47740420/