簡體   English   中英

如何使用 Array.push 並返回推送的項目?

[英]How to use Array.push and return the pushed item?

我打電話給return someArr[someArr.push(newItem)-1]; 它做得很好。

想知道這個極其常見的操作是否有句法“糖”? 我想知道因為返回的新length確實比實際構造的對象(調用者可能想要填充)更不需要。 還是因為它實際上會返回“對象的副本”,而我對其字段的編輯在實際樹中“將無法生存”?

就像 JS <= 1.2 所做的一樣: return someArr.push(newItem);

只是想知道 - 是否有我不知道的新“替換”方法?


另外我有一個小問題“這是否返回對象的'獨立'副本或對實際對象的'引用'?” 但是@PatricRoberts 的簡單小提琴才發現它實際上是一個參考(正如預期的那樣),所以我感謝他的幫助!

您也可以使用邏輯和 (&&)來做到這一點。

return someArr.push(newItem) && newItem;

由於推送后數組長度將為正,因此將評估最右側的表達式並返回其值。

不過,這種語法不如@adiga 使用逗號運算符的答案清晰。

但是,我個人更喜歡在新行上返回新項目以使其更具可讀性

someArr.push(newItem);
return newItem;

您可以使用逗號運算符

逗號運算符計算其每個操作數(從左到右)並返回最后一個操作數的值。

像這樣:

return (someArr.push(newItem), newItem)

這相當於:

someArr.push(newItem);
return newItem

您可以通過返回對當前.length的索引的賦值來實現。

return someArr[someArr.length] = newItem;

分配的結果是被分配的項目,因此這就是將返回的內容。

分配給數組的當前.length自動擴展它。 請注意,分配給任何高於當前.length索引都會在數組中留下漏洞。

暫無
暫無

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

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