[英]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.