1.查找数组中每一个元素出现的次数
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;
}, {});
console.log(countedNames) // { 'Alice': 2, 'Bob': 1, 'Tiff': 1, 'Bruce': 1 }
2.查找数组中出现次数最多的一个元素,并输出次数
var names = ['Alice', 'Bob', 'Tiff', 'Bruce', 'Alice'];
function getArrMaxRepetData(arr) {
const obj = {}
const newObj = {
max: 0,
key: 0
}
for(let i = 0; i < arr.length; i++) {
obj[arr[i]] ? obj[arr[i]]++ : obj[arr[i]] = 1
}
for(const i in obj) {
if(obj[i] > newObj.max) {
newObj.max = obj[i]
newObj.key = i
}
}
return newObj
}
console.log(getArrMaxRepetData(names)) // {key: "Alice"max: 2}