簡體   English   中英

使用數組解構分配調用哪個 function?

[英]Which function is being called using an array destructuring assigment?

 let [x, y] = ["Ele", "Stack"].reduce((a, s) => { ax = s; ay = s; return a; }, { x: {}, y: {}});

上面的代碼片段會引發錯誤,因為它試圖對 object(鍵:值)進行數組解構賦值。

我缺乏知識

使用數組解構賦值調用哪個 function?

我認為您遇到了該類型錯誤,因為數組解構隱式調用Array[Symbol.iterator] ,這是未定義的,因為您實際上是從reduce()返回 object,而不是數組。 修復方法是將其替換為 Object 解構

 let {x, y} = ["Ele", "Stack"].reduce((a, s) => { ax = s; ay = s; return a; }, { x: {}, y: {}}); console.log({ x, y })

array解構的工作方式就像它獲取數組的索引並將其放入您分配的變量中。

例如,假設數組是-

const arr = [1, 2, 3, 4, 5];

現在您想將數組元素解構為變量。

const [a, b] = arr;

這會將arr[0]的值放入a並將arr[1]放入b 這樣,您可以根據需要分配任意數量。

如果要將兩個索引放入兩個變量中,並將元素的 rest 放入另一個數組中,則可以使用像這樣的擴展運算符來做到這一點 -

const [a, b, ...rest] = arr;

這里, aarr[0]的值, barr[1]的元素, rest將 rest 的元素放入rest數組中。 所以rest陣列將是-

[3, 4, 5]

我希望這能幫到您。

暫無
暫無

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

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