JS - reduce

reduce()接收一个匿名函数function (prev, cur)作为参数;第二个参数可以选填,如果选填将作为prev的初始值,则第一次遍历前,cur为数组的第一个元素。

当prev没有设置初始值时,在第一次遍历中,prev为数组第一个元素值,cur为数组第二个元素值;在第一次遍历后,prev为数组第一、第二元素的相加值,cur为数组第三个元素值。prev记录的是数组遍历过程中累加的值。

reduce用法

参考博客:https://www.jianshu.com/p/541b84c9df90

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

// 计算数组的和
var sum = arr.reduce(function (prev, cur) {
  return prev + cur
}, 0)
console.log(sum)

// 计算数组中的最大值
var max = arr.reduce(function (prev, cur) {
  return Math.max(prev, cur)
})
console.log(max)

// 数组去重
var newArr = arr.reduce(function (prev, cur) {
  prev.indexOf(cur) === -1 && prev.push(cur)
  return prev
}, [])
console.log(newArr)

2019-10-12补充:数组对象计算最大值

let arr = [
  {date: "09月12日", count: 1},
  {date: "09月17日", count: 1},
  {date: "09月22日", count: 0},
  {date: "09月27日", count: 2},
  {date: "10月02日", count: 0},
  {date: "10月07日", count: 0},
  {date: "10月12日", count: 0}
]

let maxItem = arr.reduce((prev, cur) => {
  return prev.count > cur.count ? prev : cur
})

console.log(maxItem.count)
发布了93 篇原创文章 · 获赞 20 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/sinat_33184880/article/details/102415660