统计数组中每项出现的次数
方法一:普通for循环
let arr = [2, 3, 4, 2, 0, 1, 3, 2, 2, 9, 7, 100]
let obj = {}
for(var i = 0; i < arr.length; i++) {
let key = arr[i]
// if else 判断
// if(obj[key] == undefined) {
// obj[key] = 1
// } else {
// obj[key]++
// }
// 三元运算符判断
obj[key] == undefined ? obj[key] = 1 : obj[key]++
}
console.log(obj);
方法二: reduce函数
obj: 返回值,函数的执行结果
cur:数组的每一项
cur in obj:判断数组的每一项是否在执行结果中
let result = arr.reduce((obj,cur)=> {
// 判断数组的每一项是否在执行结果中
// if(cur in obj) {
// obj[cur]++
// } else {
// obj[cur] = 1
// }
// 三元运算符判断
(cur in obj) ? obj[cur]++ : obj[cur] = 1
return obj
},{})
console.log(result);
方法三: indexOf()
for (let i = 0; i < arr.length; i++) {
if (arr.indexOf(arr[i]) == i) {
let num = 0;
for (let j = i; j < arr.length; j++) {
if (arr[i] == arr[j]) {
num++;
}
}
console.log(arr[i] + "出现的次数是:" + num)
}
}