Javascript 元素之和,代码之间的差异

Javascript 元素之和,代码之间的差异,javascript,sum,Javascript,Sum,我有两段代码,都计算数组元素的和: var sum = array.reduce(function(previousValue, currentValue) { return previousValue + currentValue; }, 0); 或 除了不同的实现之外,它们之间还有什么区别吗?什么时候使用哪一种更好?除了您个人的风格偏好外,实际表现也可能有所不同。然而,这两个方面的表现似乎相似 如果你做这个操作很多(或者对于大型数组)考虑使用第三种方式: var sum = 0;

我有两段代码,都计算数组元素的和:

var sum = array.reduce(function(previousValue, currentValue) {
    return previousValue + currentValue;
}, 0);


除了不同的实现之外,它们之间还有什么区别吗?什么时候使用哪一种更好?

除了您个人的风格偏好外,实际表现也可能有所不同。然而,这两个方面的表现似乎相似

如果你做这个操作很多(或者对于大型数组)考虑使用第三种方式:

var sum = 0;
for (l = array.length; l--; ) { sum += array[l]; }
这会快得多。检查实际结果

注意:如果缓存数组长度,将获得一定的速度。因此,与其这样做,不如:

for (var i = 0; i < array.length; i++) {...}
或者这个:

for (l = array.length; l--;) { ... }

除了个人风格偏好外,实际表现也可能存在差异。然而,这两个方面的表现似乎相似

如果你做这个操作很多(或者对于大型数组)考虑使用第三种方式:

var sum = 0;
for (l = array.length; l--; ) { sum += array[l]; }
这会快得多。检查实际结果

注意:如果缓存数组长度,将获得一定的速度。因此,与其这样做,不如:

for (var i = 0; i < array.length; i++) {...}
或者这个:

for (l = array.length; l--;) { ... }

第一个比第二个稍重。 最快的方法是避免为每个步骤调用函数,并为使用类似
的循环

var sum = 0;
for(var i=0, len=array.length; i<len; i++){
    sum += array[i]; 
}
var总和=0;

对于(var i=0,len=array.length;i第一个略重于第二个。 最快的方法是避免为每个步骤调用函数,并为
使用类似
的循环

var sum = 0;
for(var i=0, len=array.length; i<len; i++){
    sum += array[i]; 
}
var总和=0;

对于(var i=0,len=array.length;i,因为使用这两个函数都涉及对每个元素执行回调函数,这将导致函数调用开销(因此两者都不有效),使用循环将提供更好的性能。

因为使用这两个函数都涉及对每个元素执行回调函数,这将导致函数调用开销(因此两者都不有效),使用循环将提供更好的性能。

两者都是有效的,选择一个或另一个是偏好的问题。我个人喜欢
reduce
更好。两者都是有效的,选择一个或另一个是偏好的问题。我个人喜欢
reduce
更好。或者
while(l--){…}
或者
while(l--){…}