数组Reduce的应用

数组Reduce的应用

参考

简单应用

var arr = [1,2,3,4,5]

var sum = arr.reduce(function (prev, cur, index, arr) {
  console.log(prev, cur, index)
  return prev + cur
})

console.log(sum)

第一层

for

var result = [
  {
      subject: 'math',
      score: 88
  },
  {
      subject: 'chinese',
      score: 95
  },
  {
      subject: 'english',
      score: 80
  }
];

var sum = 0
for (var i =0; i< result.length; i++) {
  sum += result[i].score
}
console.log(sum)

reduce

var sum = result.reduce((pre, cur, index, arr) => {
  // if (typeof pre === 'object') { // 如果没有默认值, 需要设置这个判断 , 来排除第一项
  //   pre = pre.score
  // }
  return cur.score + pre
} ,0)
console.log(sum)

加个权重

var dis = {
  math: 0.5,
  chinese: 0.3,
  english: 0.2
}

var sum = 0
// for (var i =0; i< result.length; i++) {
//   sum += result[i].score
// }

var sum = result.reduce((pre, cur, index, arr) => {
  // if (typeof pre === 'object') { // 如果没有默认值, 需要设置这个判断 , 来排除第一项
  //   pre = pre.score
  // }
  return cur.score * dis[cur.subject] + pre
} ,0)
console.log(sum)

一串字符串中字母出现的次数

var arrString = 'aaabbsssbdd'

var res = arrString.split('').reduce(function (res, cur, index, arr) {
  res[cur] ? ++res[cur] : res[cur] = 1
  return res
}, {})

console.log(res)

猜你喜欢

转载自www.cnblogs.com/zhangrunhao/p/9202812.html
今日推荐