js数组求和,相信大家多数都是进行循环求和。但是这种方法,资源开销比较大,效率比较低。今天想了想,发现了一个好办法。在此分享一下。
-
首先我们创建一个数组a,数组的长度是10万;
var a = new Array(); for(var i=0;i<100000;i++){ a.push(i*12); }
-
然后我们用普通的循环求和,记录一下开始时间和结束时间;
执行结果为
我们可以看到,普通循环的方式,用时是196毫秒。
console.info(new Date().getTime()); var x=0; for(var i=0;i<a.length;i++){ x +=a[i]; } console.info(x); console.info(new Date().getTime());
-
然后我们用新的方法来求和,记录一下开始时间和结束时间;
执行结果为:
我们同样可以看到,新方法,用时是46毫秒。
console.info(new Date().getTime()); console.info(eval(a.join("+"))); console.info(new Date().getTime());
-
从2和3中我们可以看到,普通方法和我们新方法时间相差了4.2倍,并且这个倍数随着数组长度的变长,呈指数增长。
-
实验全部代码如下:
var a = new Array(); for(var i=0;i<100000;i++){ a.push(i*12); } console.info(new Date().getTime()); console.info(eval(a.join("+"))); console.info(new Date().getTime()); var x=0; for(var i=0;i<a.length;i++){ x +=a[i]; } console.info(x); console.info(new Date().getTime());
-----------------------------------------------------
转载请注明来源此处
原地址:#
发表