方法一 :
// 统计数组中 相同值出现的次数
var arr = [2,3,5,6,7,1,3,4,2,4,3]
let obj = {}
for(let i = 0 ; i < arr.length; i++) {
if(obj[arr[i]]){ //如果obj中有值, +1 (如果数组中有值 是0,注意true 和 false 的转换)
obj[arr[i]] += 1
}else{ // 如果obj中没有这个对象,创建对象并赋值 为 1
obj[arr[i]] = 1
}
}
console.log(obj) // {1: 1, 2: 2, 3: 3, 4: 2, 5: 1, 6: 1, 7: 1}
方法二 :
var arr = ['b','a','a','c','a','a','a','b','c']
function Num(arr) {
var arr1 = {}
for (i = 0; i < arr.length; i++) {
var key = arr[i]
if (arr1[key]) {
arr1[key] += 1
} else {
arr1[key] = 1
}
}
return arr1
}
var sum=Num(arr)
console.log(sum)
//{b: 2, a: 5, c: 2}
方法三 : reduce 方法
var names = ['Alice', 'Bob', 'Tiff', 'Bruce', 'Alice'];
var countedNames = names.reduce(function (allNames, name) {
if (name in allNames) {
allNames[name]++;
}
else {
allNames[name] = 1;
}
return allNames;
}, {});
// countedNames is:
console.log(countedNames);
// { 'Alice': 2, 'Bob': 1, 'Tiff': 1, 'Bruce': 1 }