How can i remove duplicated arrays in this data structure?
[![enter image description here][1]][1]
I got this:
["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]
with:
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)]);
}
I need to reduce data, remove duplicated arrays and provide result to sankey graf. jsonData elements contain much more data and structure of each left, center and right side is a little bit diffrent. [1]: https://i.sstatic.net/1MvXz.png
double-beep
5,68019 gold badges43 silver badges50 bronze badges
asked Mar 15, 2016 at 14:46
Arek Kostrzeba
5791 gold badge8 silver badges22 bronze badges
-
2please add the array as text and add you codeNina Scholz– Nina Scholz2016年03月15日 14:47:42 +00:00Commented Mar 15, 2016 at 14:47
-
1What specifically are you having problems with? The general approach is pretty simple: iterate over the array and only add the values to the output array which you haven't seen yet.Felix Kling– Felix Kling2016年03月15日 14:55:35 +00:00Commented Mar 15, 2016 at 14:55
2 Answers 2
You could filter them:
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);
answered Mar 15, 2016 at 14:55
baao
73.6k18 gold badges152 silver badges209 bronze badges
Sign up to request clarification or add additional context in comments.
Comments
In this other reply it was resolved stringifying the arrays, and removing duplicates with a Set. It should be much simpler
Array.from(new Set(jsonData.map(JSON.stringify)), JSON.parse)
answered May 5, 2021 at 10:21
David Vicente
3,1311 gold badge21 silver badges27 bronze badges
Comments
Explore related questions
See similar questions with these tags.
lang-js