数组求和的三种方式

303 阅读1分钟

数组求和

const  arr=[
   { name:'张三',gender:'男',score:98},
   { name:'李四',gender:'女',score:100},
   { name:'王五',gender:'男',score:97},
   { name:'赵六',gender:'女',score:99}
]

求所有学生的成绩

法1 for循环

let sum1=0
for(let i = 0;i<arr.length;i++){   
    sum1+=arr[i].score
}
console.log(sum1)//394

法2 forEach遍历

let sum2=0
arr.forEach(item => {
sum2+=item.score
})
console.log(sum2)//394

法3 reduce方法

let sum3=arr.reduce((sum,item)=>{
   return sum+=item.score
},0)
//以上操作也可以一行代码解决
//let sum3=arr.reduce((sum,item)=> sum+=item.score,0)
console.log(sum3)//394

求所有女生的成绩

法1 for循环

let sum4=0
for(let i = 0;i<arr.length;i++){   
    if (arr[i].gender==='女'){
        sum4+=arr[i].score
    }
}
console.log(sum4)//199

法2 forEach遍历

let sum5=0
arr.forEach(item => {
  if (item.gender==='女'){
    sum5+=item.score
  }
})
console.log(sum5)//199

法3 reduce方法

let sum6=arr.reduce((sum,item)=>{
  if(item.gender==='女'){
     sum+=item.score
  }
  return sum
 },0)
 console.log(sum6)//199