javascript/jquery 从计数数组构建数组

标签 javascript jquery arrays count

嘿,我有一个简单的问题,我找不到答案, 我正在尝试为图表生成一些原始数据

假设我有一个像这样的数组:

[1,0,0,1,2,0]

有没有办法用它制作一个数组,该数组具有表示重复条目计数的嵌套数组?

[[0,3],[1,2],[2,1]]

这里有一些代码可以解决这个问题,但将计数保存为对象

var array = [1,0,0,1,2,0];
var length = array.length;
var objectCounter = {};

for (i = 0; i < length; i++) {

    var currentMemboerOfArrayKey = JSON.stringify(array[i]);

    var currentMemboerOfArrayValue = array[i];

    if (objectCounter[currentMemboerOfArrayKey] === undefined){

         objectCounter[currentMemboerOfArrayKey] = 1;
    }else{
        objectCounter[currentMemboerOfArrayKey]++;
    }
}

但是 objectCounter 像这样返回它们

{0:3,1:2,2:1}

但我需要它作为我在上面指定的数组?

如有任何帮助,在此先感谢

最佳答案

尝试

var array = [1, 0, 0, 1, 2, 0];

function counter(array) {
    var counter = [],
        map = {}, length = array.length;
    $.each(array, function (i, val) {
        var arr = map[val];
        if (!arr) {
            map[val] = arr = [val, 0];
            counter.push(arr);
        }
        arr[1] += 1;
    })

    return counter;
}
console.log(JSON.stringify(counter(array)))

演示:Fiddle

关于javascript/jquery 从计数数组构建数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20607300/

相关文章:

javascript - 在 Node.js 中表示状态的普遍接受的模式是什么

javascript - 同步动态列表中的问题与来自服务器的请求列表(VueJs)

c - 使用数组时 C 中的段错误

javascript - 在 JavaScript 中使用数组作为名称对输入元素的值进行计数

javascript - JQuery、Froala - 更改光标所在元素的 CSS

java - 与数组列表和 toString 方法相关

javascript - 三.js可拖动形状

javascript - 如何从另一个数组中的对象属性创建数组

jquery - 在 WordPress 中找不到 jquery 文件

javascript - 如何将 html 从当前页面附加到另一个页面?