Remove duplicates of array from another array, JavaScript - Stack Overflow

How can i remove duplicated arrays in this data structure?[![enter image description here][1]][1]I go

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]: .png

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/1MvXz.png

Share Improve this question edited Jul 21, 2021 at 19:30 double-beep 5,53719 gold badges40 silver badges49 bronze badges asked Mar 15, 2016 at 14:46 Arek KostrzebaArek Kostrzeba 5791 gold badge8 silver badges22 bronze badges 2
  • 2 please add the array as text and add you code – Nina Scholz 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. – Felix Kling Commented Mar 15, 2016 at 14:55
Add a ment  | 

2 Answers 2

Reset to default 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);

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)

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745299485a4621349.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信