```js
// 计算每个元素出现的次数 利用reduce 逼格更高一些
let arr = ['zhou', 'zhou', 'zhi', 'zhi', 'zhou', 'zhi', 'hu']
let sum = arr.reduce((pre, cur) => {
// console.log(pre, cur)
if (cur in pre) {
pre[cur]++
} else {
pre[cur] = 1
}
return pre
}, {})
console.log(sum)
// 数组去重
let arr1 = [1, 2, 3, 4, 5, 6, 5, 4, 3, 4, 5, 4, 56, 2]
let result = arr1.reduce((pre, cur) => {
if (!pre.includes(cur)) {
return pre.concat(cur)
} else {
return pre
}
}, [])
console.log(result)
// 对数组对象中的某一属性值求和
let result1 = [{
subject: 'math',
score: 10
},
{
subject: 'chinese',
score: 20
},
{
subject: 'english',
score: 30
}
]
var sum1 = result1.reduce(function (prev, cur) {
return cur.score + prev
}, 0)
console.log(sum1) //60