我有这个长度为129的JavaScript数组。
var fullnames = [Karri, Ismo, Grigori, Ahmed, Roope, Arto .....]
我想知道这些名字出现在数组中的次数,并将这些信息存储在这样的数组中:
var counter = [2, 5, 7, ..]
Karri在fullnames
阵列中出现2次,Ismo发生了5次等等。有关如何做的任何想法?
答案 0 :(得分:1)
这是我能想到的最好 - 最简单的方式:
var fullnames = ["Karri", "Ismo", "Grigori", "Ahmed", "Roope", "Arto"];
var counts = {};
for (var i = 0; i < fullnames.length; i++)
{
if (!counts.hasOwnProperty(fullnames[i]))
{
counts[fullnames[i]] = 1;
}
else
{
counts[fullnames[i]]++;
}
}
使用数组存储计数并没有多大意义,所以我使用了一个对象。
答案 1 :(得分:0)
我假设fullnames
是字符串数组。如果是这样,你可以这样做:
var occurences = { };
for (var i = 0; i < fullnames.length; i++) {
if (typeof occurences[fullnames[i]] == "undefined") {
occurences[fullnames[i]] = 1;
} else {
occurences[fullnames[i]]++;
}
}
console.log(occurences); // Prints out something like: {"Karri": 2, "Ismo": 5, ...}
答案 2 :(得分:0)
var fullnames = ['Karri', 'Ismo', 'Grigori', 'Karri', 'Ismo', 'Grigori', 'Grigori', 'Karri', 'Ismo', 'Grigori', 'Grigori'];
var counts = [];
fullnames.forEach(function(_item) {
if(typeof counts[_item] === 'undefined') counts[_item] = 1;
else counts[_item]++;
});
var result = [];
for(i in counts) result.push(counts[i]);
console.log(result);
// outputs [3, 3, 5]