计算一个元素在数组中出现的次数

413 阅读1分钟

前言

如何计算一个元素在数组中出现的次数呢?本文通过基础写法和进阶写法进行讲解,还不会的小伙伴儿快来瞅瞅~


一、需求

求以下数组中每个元素出现的次数,示例结果:{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文件查看结果。

Snipaste_2021-08-12_10-15-38.png


总结

每天进步一点点儿,只为遇见更好的自己~