簡體   English   中英

通過擴展運算符進行數組解構

[英]Array destructuring via spread operator

關於數組解構的MDN文檔是非常不言自明的,但是,我無法理解在解構數組時幕后發生的事情:

 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]; 

它有效,但它用其余參數覆蓋索引零的第一個值。

 let array0 = [1, 3, 5, 6], array1 = [], array2 = []; [array2[0], ...array1] = array0; console.log(array0); // [1, 3, 5, 6] console.log(array1); // [3, 5, 6] console.log(array2); // [1] 
 .as-console-wrapper { max-height: 100% !important; top: 0; } 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM