【发布时间】:2015-04-14 18:34:57
【问题描述】:
我有这个长度为 129 的 JavaScript 数组。
var fullnames = [Karri, Ismo, Grigori, Ahmed, Roope, Arto .....]
我想知道这些名字在一个数组中出现了多少次,并将这些信息存储在一个数组中,如下所示:
var counter = [2, 5, 7, ..]
Karri 在fullnames 数组中出现了 2 次,Ismo 出现了 5 次等等。关于如何做到这一点的任何想法?
【问题讨论】:
-
你有没有尝试过?
-
最直接的答案可能是您的问题集问题正在寻找的内容:使用
reduce。试一试,如果你不明白,把你的作品发回这里。 -
减少是不够的,需要有某种嵌套迭代。
-
@dandavis 我没有给出完整的答案,因此发表了评论。这是为了让 OP 继续下去,这样他们就可以尝试自己解决它。
-
grr,错误关闭:我想你想计算一个未显示的数组?
var fullNames = ['Karri', 'Ismo', 'Grigori', 'Ahmed'], counts=[], whole=['Karri', 'Ahmed', 'Ahmed', 'Ismo', 'Grigori', 'Ahmed','Karri', 'Ismo', 'Grigori', 'Ahmed', 'Ismo', 'Grigori' ] whole.forEach(function(name){ var slot=fullNames.indexOf(name); counts[slot]=counts[slot]||0; counts[slot]++; }); counts // == [2, 3, 3, 4]
标签: javascript arrays