嘿,我有一个简单的问题,我找不到答案, 我正在尝试为图表生成一些原始数据
假设我有一个像这样的数组:
[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/