前言
如何计算一个元素在数组中出现的次数呢?本文通过基础写法和进阶写法进行讲解,还不会的小伙伴儿快来瞅瞅~
一、需求
求以下数组中每个元素出现的次数,示例结果:{a: 1, b: 3, c: 3}
let arr = ["b", "c","b", "c","a", "b", "c"]
二、思路
通过JavaScript的内置对象Array提供的reduce方法,来计算数组内元素的出现次数。
- reduce语法
arr.reduce(callback(accumulator, currentValue[, index[, array]])[, initialValue])
- 步骤 给reduce方法设置一个累计器并赋初始值为{} 判断数组中的每一项是否存在于累计器对象中 不存在就使用当前项作为累计器对象的键,并赋值为1 存在就让累计器中对象的键值对的值在原先基础上+1 每循环一次将累计器的值返回供下一次循环使用
三、代码演示
1.基础写法
代码如下(示例):
let arr = ["b", "c","b", "c","a", "b", "c"]
let result = arr.reduce((acc,cur) => {
if(cur in acc){
acc[cur]++
} else {
acc[cur] = 1
}
return acc
},{})
console.log(acc)
2.进阶写法
代码如下(示例):
let arr = ["b", "c","b", "c","a", "b", "c"]
let result = arr.reduce((acc,cur) => (cur in acc ? acc[cur]++ : acc[cur] = 1, acc),{})
console.log(result)
四、结果展示
使用Vscode编辑器中自带的终端,使用node命令运行js文件查看结果。
总结
每天进步一点点儿,只为遇见更好的自己~