我有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,然後再將端口分組到另一個端口,這個輸出可能是可能的,那是你想要的嗎? –