javascript - 计算数组中有多少个具有特定名称的条目并保存以供以后使用

标签 javascript arrays sorting count

我正在尝试找到一种方法来计算此数组中每种类型的条目数量:

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/

相关文章:

javascript - 拆分和连接功能或替换功能

javascript - for循环的交错效果

java - 从文件扫描器到数组

'Season Year' 等字符串的 Python 自定义排序函数

javascript - js setInterval - 逐渐提高速度

Javascript - 使用内联样式创建元素 <hr>

javascript - 使用react-hooks更新状态时执行异步代码

java - 如何复制二维字符串数组?

ios - Objective-c 以正确的顺序使用字母数字字符串对 NSArray 进行排序

algorithm - 对 D 中的关联数组进行排序