我正在尝试学习如何以最有效的方式优化javascript ...
我认为尽可能避免创建对属性的引用是一种好习惯。
在PHP中,如果我有这个数组:
$dataArray = [4,6,8];
要修改此数组的值,我可以编写一个foreach循环来返回对该数组中值的引用,而不是副本,使用&符号,如下所示:
foreach ($dataArray as &$value) {
$value = $value / 2;
}
unset($value); // if im not mistaken, this is just cleanup
// $dataArray will now = [2,3,4]
以下是在Javascript中实现相同结果的最有效方法吗?
var dataArray = [4,6,8];
for (i = 0; i < dataArray.length; i++) {
dataArray[i] = dataArray[i] / 2;
}
// if so, is there anything i should do to clean up the for loop to avoid memory leaks?
答案 0 :(得分:0)
您可以将Array#forEach
与索引和数组的参数一起使用。然后为具有相同索引的项目分配新值。
var array = [4, 6, 8];
array.forEach(function (_, i, aa) {
aa[i] /= 2;
});
console.log(array);
&#13;
为了完整起见,您可以使用Array#map
生成一个新数组并将其分配给变量。
var array = [4, 6, 8];
array = array.map(function (a) {
return a / 2;
});
console.log(array);
&#13;