相关疑难解决方法(0)

为什么array.push有时比array [n] = value更快?

作为测试一些代码的副作用,我编写了一个小函数来比较使用array.push方法与直接寻址(array [n] = value)的速度.令我惊讶的是,推送方法通常表现得更快,特别是在Firefox中,有时在Chrome中.只是出于好奇:任何人都有解释吗?您可以在此页面找到测试(单击"数组方法比较")

javascript browser arrays performance firefox

69
推荐指数
4
解决办法
3万
查看次数

有没有理由JavaScript开发人员不使用Array.push()?

我经常看到开发人员在JavaScript中使用如下表达式:

arr = []
arr[arr.length] = "Something"
arr[arr.length] = "Another thing"
Run Code Online (Sandbox Code Playgroud)

会不会push更合适?

arr = []
arr.push("Something")
arr.push("Another thing")
Run Code Online (Sandbox Code Playgroud)

javascript

40
推荐指数
2
解决办法
2万
查看次数

添加到数组时使用push方法或.length?

做的缺点是什么:

var myArray = [];
myArray[myArray.length] = val1;
myArray[myArray.length] = val2;
Run Code Online (Sandbox Code Playgroud)

代替:

var myArray = [];
myArray.push(val1);
myArray.push(val2);
Run Code Online (Sandbox Code Playgroud)

我确信push方法更"可接受",但是功能上有什么不同吗?

javascript

12
推荐指数
2
解决办法
1万
查看次数

array.push(element) 与 array[array.length] = element

我想知道是否有选择的理由

array.push(element)
Run Code Online (Sandbox Code Playgroud)

超过

array[array.length] = element
Run Code Online (Sandbox Code Playgroud)

或相反亦然。

这是一个简单的例子,我有一个数字数组,我想用这些数字乘以 2 来创建一个新数组:

var numbers = [5, 7, 20, 3, 13];

var arr1 = [];
var len = numbers.length;
for(var i = 0; i < len; i++){
    arr1.push(numbers[i] * 2);
}
alert(arr1);

var arr2 = [];
for(var i = 0; i < len; i++){
    arr2[arr2.length] = numbers[i] * 2;
}
alert(arr2);
Run Code Online (Sandbox Code Playgroud)

javascript arrays optimization

5
推荐指数
1
解决办法
1万
查看次数