我正在开发一个 JavaScript 游戏,我希望尽可能降低内存使用率。因此,我再次将一些对象设置为 null,以便它们可以被垃圾收集。我读了一篇文章,它建议避免使用类似的函数Array.splice()
,因为这会创建一个新数组,它会分配新的内存。
所以我用自己的函数实现了一个JSFiddle,它删除特定索引处的元素并将所有元素移到后面,因此长度将设置为length -= 1
. 这只会影响现有数组,而不是创建一个新数组:
代替拼接使用的函数:
deleteElem = function(arr, el) {
var index = arr.indexOf(el);
if (index > -1) {
var len = arr.length - 1;
for (var i = index; i < len; i++) {
arr[i] = arr[i + 1];
}
arr.length = len;
}
}
我的函数的 JSFiddle 有时更快,有时更慢......我应该更多地关注更好的性能和更差的内存,还是更好的内存和更差的性能?
还有哪些其他方法可以避免使用Array.splice
?