计算给定数组 arr 中所有元素的总和的几种方法

1.forEach遍历:

function sum(arr) {
    var result = 0;
    arr.forEach(function(item,index) {
        result += item;
    });
  
    return result;
};

2.reduce

function sum(arr) {
    return arr.reduce(function(pre,cur){
        return pre+cur;
    })
}
var sum=[2,4,1];
let nums=sum.reduce(function(pre,cur){
  return pre+cur;
  })
nums //7

 

var books=[{
  name:'语文',
  price:20    
},
{
  name:'数学',
  price:21    
},
]
let prices=books.reduce(function(pre,item){
  return pre+item.price*2;

},0)
prices
82

 

3. eval

function sum(arr) {
   return eval(arr.join("+"));
}
[1,2,3,4].join('+')
//"1+2+3+4"
eval("1+2+3+4");
//10

4.filter

var sum=[2,4,1,3,7,5,6,9];
let nums=sum.filter(function(item){
  return item<5;
  })
nums  // [2, 4, 1, 3]

 

5.map

var sum=[2,4,1,3,7,5,6,9];
let nums=sum.map(function(item){
  return item*2;
  })
nums  // [4, 8, 2, 6, 14, 10, 12, 18]

 

6.常规循环

function sum(arr) {
    var result= 0;
    var len=arr.length;
    for (var i=0;i<len;i++) {
        result += arr[i];
    }
    return result;
}

 

var sum=[2,4,1,3,7,5,6,9];
let nums=sum.filter(n=>n<=3).map(n=>n*2).reduce((pre,cur)=>pre+cur);
nums  //12

 

posted @ 2018-06-09 22:25  sunmarvell  阅读(2535)  评论(0编辑  收藏  举报