簡體   English   中英

像map()這樣的函數不會創建新數組

[英]function like map() that doesn't create a new array

在JS中是否存在類似map()的函數,它將返回值存儲在原始數組中,而不是創建新數組? 如果沒有,那么最有效的方法是什么?

只需使用.forEach()代替:

myArray.forEach(function(value, index, array) {
    array[index] = ...   // some mutation of value
});

完全相同的代碼仍然可以使用.map (它使用相同的三個參數調用回調,因此允許就地突變),但.forEach避免了創建新數組的開銷,只是讓它立即被丟棄。

還要注意,雖然人們可以在回調中引用myArray ,但是它的效率要高得多。 array參數傳遞給回調允許回調操作或訪問原始數組,而不要求它在詞法范圍內(盡管使用它來插入或刪除元素將是不明智的)

暫無
暫無

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

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