1

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

2
  • 2
    please add the array as text and add you code Commented Mar 15, 2016 at 14:47
  • 1
    What 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. Commented Mar 15, 2016 at 14:55

2 Answers 2

4

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);

Sign up to request clarification or add additional context in comments.

Comments

1

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)

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.