gpt4 book ai didi

javascript - 计算具有特定属性值的对象数组中的项目数 (JavaScript)

转载 作者:行者123 更新时间:2023-12-02 16:05:46 26 4
gpt4 key购买 nike

我有一个对象数组。请注意,“created”有时多次具有相同的值。另请注意,“状态”有时为“0”:

var array = [
{"created":"Jan 1","status":1},
{"created":"Jan 1","status":1},
{"created":"Jan 2","status":1},
{"created":"Jan 3","status":0},
{"created":"Jan 4","status":1},
{"created":"Jan 4","status":1}
];

我想要一个新的新对象数组,如下所示:

var newArrayA = [
{"Jan 1":2},
{"Jan 2":1},
{"Jan 3":0},
{"Jan 4":2}
];

或者像这样的多维数组(我不确定哪个对 D3.js 更好):

var newArrayB = [
["Jan 1",2],
["Jan 2",1],
["Jan 3",0],
["Jan 4",2]
];

所以,当“status”为“1”时,它会统计相同的“created”数量。当状态为“0”时,也包括在内。

我该怎么做?这是我到目前为止所拥有的JSFIDDLE 。这是处理方法吗?或者我错过了一些简单的解决方案?谢谢!

最佳答案

D3 可以处理任何一种结果格式 - 它确实稍微取决于您想用它做什么。无论如何,这里是一些用于生成任一格式的示例代码:

var result = {};
array.forEach(function(i) {
if (!result.hasOwnProperty(i.created)) {
result[i.created] = 0;
}
if (i.status === 1) {
result[i.created] += 1;
}
});

var newArrayA = Object.keys(result)
.map(function(k) {
var o={};
o[k] = result[k];
return o;
})

var newArrayB = Object.keys(result)
.map(function(k) { return [k,result[k]] })

关于javascript - 计算具有特定属性值的对象数组中的项目数 (JavaScript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30763682/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com