JS中是否有类似map()的函数将返回值存储在原始数组中,而不是创建新数组?如果没有,那么最有效的方法是什么?
答案 0 :(得分:6)
只需使用.forEach()
代替:
myArray.forEach(function(value, index, array) {
array[index] = ... // some mutation of value
});
完全相同的代码仍然适用于.map
(它使用相同的三个参数调用回调,因此允许就地突变)但.forEach
避免了创建新数组的开销,仅把它立刻扔掉。
另请注意,虽然一个 只能在回调中引用myArray
,但它的效率要高得多。将array
参数传递给回调允许回调操作或访问原始数组,而不要求它在词法范围内(尽管使用它来插入或删除元素是不明智的)