【问题标题】:Remove duplicates of array from another array, JavaScript从另一个数组中删除重复的数组,JavaScript
【发布时间】:2016-03-15 14:46:50
【问题描述】:

如何删除此数据结构中的重复数组?

[![在此处输入图片描述][1]][1]

我知道了:

    ["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)]);
}

我需要减少数据,删除重复的数组并将结果提供给 sankey graf。 jsonData 元素包含更多的数据,每个左侧、中心和右侧的结构都有点不同。 [1]:http://i.stack.imgur.com/1MvXz.png

【问题讨论】:

  • 请将数组添加为文本并添加代码
  • 您遇到的具体问题是什么?通用方法非常简单:遍历数组并仅将值添加到您尚未看到的输出数组中。

标签: javascript arrays nested duplicates


【解决方案1】:

this other reply 中解决了对数组进行字符串化并使用 Set 删除重复项的问题。它应该更简单

Array.from(new Set(jsonData.map(JSON.stringify)), JSON.parse)

【讨论】:

    【解决方案2】:

    你可以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);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-14
      • 1970-01-01
      • 2021-07-27
      • 2018-10-23
      • 2011-08-17
      • 1970-01-01
      • 1970-01-01
      • 2013-02-19
      相关资源
      最近更新 更多