相关疑难解决方法(0)

计算数组元素的出现次数/频率

在Javascript中,我试图获取一个初始数值值数组并计算其中的元素.理想情况下,结果将是两个新数组,第一个指定每个唯一元素,第二个包含每个元素出现的次数.但是,我愿意接受有关输出格式的建议.

例如,如果初始数组是:

5, 5, 5, 2, 2, 2, 2, 2, 9, 4
Run Code Online (Sandbox Code Playgroud)

然后将创建两个新阵列.第一个将包含每个唯一元素的名称:

5, 2, 9, 4
Run Code Online (Sandbox Code Playgroud)

第二个将包含元素在初始数组中出现的次数:

3, 5, 1, 1
Run Code Online (Sandbox Code Playgroud)

因为数字5在初始数组中出现三次,所以数字2出现五次,9和4出现一次.

我经常搜索一个解决方案,但似乎没有任何工作,我自己尝试过的所有东西都变得荒谬复杂.任何帮助,将不胜感激!

谢谢 :)

javascript arrays element count

195
推荐指数
20
解决办法
31万
查看次数

使用array.reduce方法计算重复元素

我正在编写关于功能JS的教程,我需要使用reduce方法来应对挑战:

给定一个随机数组的单词,输出一个显示单词加上单词数的数组,例如:['apple, 'orange, 'grape', 'apple']- >['apple: 2','orange: 1', 'grape: 1]

我知道这不是reduce的正确用法,但这是我的半工作解决方案:

var wordCountsArray = inputWords.map(function(item){
    var counter = 0;
    var itemCount = inputWords.reduce(function(prevVal, curVal){
        if(curVal==item){
            counter++;
        }
        return;
    },0);

    return item+": "+counter;
})

return wordCountsArray;  

}
Run Code Online (Sandbox Code Playgroud)

这确实输出了单词计数,但单词计数列表有重复,即看起来像:

['apple: 2','orange: 1', 'grape: 1, 'apple: 2']
Run Code Online (Sandbox Code Playgroud)

代替

['apple: 2','orange: 1', 'grape: 1]
Run Code Online (Sandbox Code Playgroud)

我查阅了MSDN的方法指南,Mozilla的,几个博客.我得到它作为累加器如何工作,但因为它使用最后一次迭代的输出作为下一个的输入,我不知道如何将它应用于此任务.我不需要解决方案,但在理解方面可能有点帮助?

javascript arrays reduce

4
推荐指数
1
解决办法
8458
查看次数

标签 统计

arrays ×2

javascript ×2

count ×1

element ×1

reduce ×1