我正在尝试找到一种方法来计算此数组中每种类型的条目数量:
var types = [
"loc_67249556",
"loc_52558678",
"loc_62658330",
"gra_59669755",
"gra_59289309"
]
我所说的“类型”是每个条目的前 3 个字母。 我使用 for 循环数组并提取前 3 个字母:
for (var i = 0; i < types.length; k++) {
var tp= types[k].split('_');
tp = tp[0];
}
这将输出前 3 个字母,但我如何计算它们并以以后可以使用的方式保存?
类似一个新数组,其中包含类型以及它们在第一个数组中出现的次数,与此类似:
var types_count = [
{
type: "loc",
qnt: 3
},
{
type: "gra",
qnt: 2
}
]
此外,我总共有 51 种不同类型的条目,全部以 3 个字母开头。
最佳答案
使用reduce
提取前3个字母,添加到按类型索引的累加器对象中,然后获取该对象的值:
const types = [
"loc_67249556",
"loc_52558678",
"loc_62658330",
"gra_59669755",
"gra_59289309"
];
const typeCount = types.reduce((a, str) => {
const type = str.slice(0, 3);
if (!a[type]) a[type] = { type, count: 0 };
a[type].count++;
return a;
}, {})
console.log(Object.values(typeCount));
关于javascript - 计算数组中有多少个具有特定名称的条目并保存以供以后使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53779447/