js 数组求和,多种方法,并比较性能

您所在的位置:网站首页 vb数组求和 js 数组求和,多种方法,并比较性能

js 数组求和,多种方法,并比较性能

2024-07-01 14:18| 来源: 网络整理| 查看: 265

可以借用下面12种方法对数组求和,创建一个长度为10w的数组,进行测试

every()       检测数值元素的每个元素是否都符合条件。  filter()      检测数值元素,并返回符合条件所有元素的数组。  map()        通过指定函数处理数组的每个元素,并返回处理后的数组。  some()       用于检测数组中的元素是否满足指定条件(函数提供)。  reduce()       数组中的每个值(从左到右)开始合并,最终为一个值  reduceRight()    数组中的每个值(从右到左)开始合并,最终为一个值  eval()         计算 JavaScript 字符串,并把它作为脚本代码来执行。  for            循环代码块一定的次数  while         当指定的条件为 true 时循环指定的代码块  do/while       同样当指定的条件为 true 时循环指定的代码块  for in         循环遍历对象的属性  forEach      调用数组中的每个元素。    

 

  具体实现:

    首先创建一个庞大的数组:

    var aArr = [];

    for(var i = 0;i < 1000000;i++){

     aArr.push(i);

      }

  

(function(){ //every var _sum = 0; console.time('every求和时间'); aArr.every(function(item,index){ _sum += item; return true;//every每个值都运行 }) console.log('every求和: '+_sum); console.timeEnd('every求和时间'); //filter var _sum = 0; console.time('filter求和时间'); aArr.filter(function(item,index){ _sum += item; }) console.log('filter求和: '+_sum); console.timeEnd('filter求和时间'); //map var _sum = 0; console.time('map求和时间'); aArr.map(function(item,index){ _sum += item; }) console.log('map求和: '+_sum); console.timeEnd('map求和时间'); //some var _sum = 0; console.time('some求和时间'); aArr.some(function(item,index){ _sum += item; }) console.log('some求和: '+_sum); console.timeEnd('some求和时间'); //reduce console.time('reduce求和时间'); var prev; aArr.reduce(function(prev,item,index){ prev += item; }) console.log('reduce求和: '+_sum); console.timeEnd('reduce求和时间'); //reduceRight console.time('reduceRight求和时间'); var next; aArr.reduceRight(function(next,item,index){ prev += item; }) console.log('reduceRight求和: '+_sum); console.timeEnd('reduceRight求和时间'); //eval console.time('eval求和时间'); var _sum = eval(aArr.join('+')); console.log('eval求和: '+_sum); console.timeEnd('eval求和时间'); //for console.time('for(var i = 0,len = aArr.length;i < len;i++)求和时间'); var _sum = 0; for(var i = 0,len = aArr.length;i < len;i++){ _sum += i; } console.log('for求和: '+_sum); console.timeEnd('for(var i = 0,len = aArr.length;i < len;i++)求和时间'); console.time('for(var i = 0;i < aArr.length;i++)求和时间'); var _sum = 0; for(var i = 0;i < aArr.length;i++){ _sum += i; } console.log('for求和: '+_sum); console.timeEnd('for(var i = 0;i < aArr.length;i++)求和时间'); //while console.time('while求和时间'); var _sum = 0,i = 0,_len = aArr.length; while(i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3