如何删除此数据结构中的重复数组?
我明白了:
["5", "26", 300],
["7", "10", 20],
["3", "4", 30],
["5", "2", 52],
["9", "5", 300],
["3", "4", 30],
["5", "2", 52],
["5", "26", 300],
["1", "27", 250]
使用:
var all = [].concat(jsonData['l'],jsonData['c'], jsonData['r']);
for (e in all){
console.log([all[e].source, all[e].target, Number(all[e].link)]);
}
解决: 我根据mmm的想法建立了自己的功能。
function dedupe(all) {
var seen = [];
var res = [];
for (e in all){
var temp = [all[e].source, all[e].target, Number(all[e].link)];
if (seen.indexOf(temp.toString()) < 0) {
seen.push(temp.toString());
res.push(temp);
}
}
return res;
}
Thans。
答案 0 :(得分:3)
你可以filter
他们:
var a = [[1, 2, 3], [1, 2, 3], [4, 5, 6], [4, 5, 6], ['foo']];
var tmp = [];
var b = a.filter(function (v) {
if (tmp.indexOf(v.toString()) < 0) {
tmp.push(v.toString());
return v;
}
});
console.log(b);
&#13;
答案 1 :(得分:1)
在 this other reply 中,解决了将数组字符串化,并使用 Set 删除重复项的问题。应该简单多了
Array.from(new Set(jsonData.map(JSON.stringify)), JSON.parse)