【问题标题】:How to filter out common array in array of arrays [duplicate]如何过滤掉数组数组中的公共数组[重复]
【发布时间】:2018-03-21 11:50:09
【问题描述】:

我有一个数组数组:

[
  [
    "Serta",
    "Black Friday"
  ],
  [
    "Serta",
    "Black Friday"
  ],
  [
    "Simmons",
    "Black Friday"
  ],
  [
    "Simmons",
    "Black Friday"
  ],
  [
    "Simmons",
    "Black Friday"
  ],
  [
    "Simmons",
    "Black Friday"
  ]
]

我只需要获取唯一的数组,例如:

[
  [
    "Serta",
    "Black Friday"
  ],
  [
    "Simmons",
    "Black Friday"
  ] 
]

我知道对于单个数组元素,我可以使用 .filter() 之类的:

array.filter((d,i)=>array.indexOf(d)==i)

但我不确定这种情况,没有像 lodash 这样的库。

【问题讨论】:

  • 我想询问不同@Alexis 的数组数组

标签: javascript


【解决方案1】:

您可以将JSON 字符串作为哈希表中数组的键并使用它进行过滤。

var data = [["Serta", "Black Friday"], ["Serta", "Black Friday"], ["Simmons", "Black Friday"], ["Simmons", "Black Friday"], ["Simmons", "Black Friday"], ["Simmons", "Black Friday"]],
    hash = Object.create(null),
    result = data.filter(a => !hash[JSON.stringify(a)] && (hash[JSON.stringify(a)] = true));

console.log(result);

【讨论】:

  • 这可能会因包含连接字符的条目而中断。
  • @Cerbrus,不以 json 为键。
  • 现在.join 已被删除,这似乎没问题。
猜你喜欢
  • 1970-01-01
  • 2019-10-30
  • 2021-10-21
  • 2018-05-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多