![](/img/trans.png)
[英]What is the time complexity of object spread operator in Javascript?
[英]What is the role of the spread operator in this javascript code?
今天在medium上看了這篇文章,對下面的spread算子不太了解。
我知道擴展運算符用於接收數組作為 function 中的參數。 在上面的代碼中,展開運算符是做什么的? 將 object 轉換為數組?
我知道擴展運算符用於接收數組作為 function 中的參數
在這種情況下,三個點...
被稱為rest parameters syntax
,而不是spread syntax
。 在您問題中包含的代碼中,使用三個點...
的上下文稱為spread syntax
。
在上面的代碼中,展開運算符是做什么的?
它遍歷Set
並將Set
中的條目傳播(添加)到一個新數組中
以下代碼片段顯示了一個簡單的示例:
const set = new Set([1,2,3]); const newArr = [...set]; console.log(newArr);
擴展運算符結合數組語法 ( []
) 從 Set 中獲取值,並且由於缺乏更好的術語,將它們展開,因此您得到一個包含 Set 中所有值的數組。 最終結果是將一個數組轉換為另一個數組,該數組包含原始數組中的唯一值。
讓我們逐行看。
var entries = [1, 2, 2, 3, 4, 5, 6, 6, 7, 7, 8, 4, 2, 1]
這將創建一個包含一些數字列表的數組entries
。
現在,當我們這樣做時, new Set(entries)
,我們從entries
數組創建一個Set
。 Set
是您可能已經知道的不同元素的集合。
因此, new Set(entries)
為我們提供了一個來自entries
的Set
,如下所示: Set(8) {1, 2, 3, 4, 5, …}
現在, ...
運算符傳播Set
中的不同元素以創建一個數組,即行 - var unique_entries = [...new Set(entries)]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.