我有JSON作为以下,如何从JSON中获取包含javascript副本的计数数量?
var json =
[
{"cardAid":"ALPHG","displayName":"ALPHG","SequenceNumber":"0","port":"A"},
{"cardAid":"ALPHG","displayName":"ALPHG","SequenceNumber":"1","port":"B"},
{"cardAid":"SFD","displayName":"SFD","SequenceNumber":"2","port":"C"},
{"cardAid":"SFD","displayName":"SFD","SequenceNumber":"3","port":"D"},
{"cardAid":"ALPHG","displayName":"ALPHG","SequenceNumber":"4","port":"E"},
{"cardAid":"ALPHG","displayName":"ALPHG","SequenceNumber":"5","port":"F"},
{"cardAid":"BETA","displayName":"BETA","SequenceNumber":"6","port":"G"}
];
我使用的代码来从这个链接解析这个JSON, TO Get the number of Count from JSON in javascript?
function count(arr) {
var map = {};
for (var i = 0; i < arr.length; i++) {
var name = arr[i].cardAid;
var port = arr[i].port;
if (name in map){
map[name].Count++;
map[name].Port += ',' + port;
} else {
map[name] = { Count: 1, Port: port };
}
}
return map;
}
本函数解析使用cardAid作为密钥JSON,并给出输出as,
{
ALPHG: { Count: 4, Port: "A,B,E,F" },
SFD: { Count: 2, Port: "C,D" },
BETA: { Count: 1, Port: "G" }
}
但我需要基于JSON中SequenceNumber的输出,
{
ALPHG: { Count: 2, Port: "A,B" },
SFD: { Count: 2, Port: "C,D" },
ALPHG: { Count: 2, Port: "E,F" },
BETA: { Count: 1, Port: "G" }
}
我如何能在地图把这个重名基于从JSON
所需输出缺少第二个'ALPHG'对象之后的逗号。此外,所需的输出无效,因为您不能拥有两个具有相同名称的对象属性。它们只会彼此覆盖,或者在解析器的情况下,它看起来像是将它们连接在一起。 – War10ck
更正了期望的输出 –
嘿,我不知道你想要什么....如果你将国家限制为2,然后再将端口分组到另一个端口,这个输出可能是可能的,那是你想要的吗? –