开发者社区> 问答> 正文

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

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

例如,如果初始数组为:

5, 5, 5, 2, 2, 2, 2, 2, 9, 4 然后将创建两个新的数组。第一个将包含每个唯一元素的名称:

5, 2, 9, 4 第二个将包含元素在初始数组中出现的次数:

3, 5, 1, 1 因为数字5在初始数组中出现3次,所以数字2出现5次,而9和4都出现一次。

我已经寻找了很多解决方案,但是似乎没有任何效果,而且我尝试过的所有事情都变得异常复杂。任何帮助,将不胜感激!

谢谢 :)

展开
收起
保持可爱mmm 2020-01-16 16:44:57 719 0
1 条回答
写回答
取消 提交回答
  • 干得好:

    function foo(arr) { var a = [], b = [], prev;

    arr.sort();
    for ( var i = 0; i < arr.length; i++ ) {
        if ( arr[i] !== prev ) {
            a.push(arr[i]);
            b.push(1);
        } else {
            b[b.length-1]++;
        }
        prev = arr[i];
    }
    
    return [a, b];
    

    } 现场演示: http : //jsfiddle.net/simevidas/bnACW/

    注意 这将使用以下命令更改原始输入数组的顺序 Array.sort 问题来源于stack overflow

    2020-01-16 16:45:08
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载