gpt4 book ai didi

Javascript - 从集合中删除重复的数组

转载 作者:行者123 更新时间:2023-11-30 11:11:35 26 4
gpt4 key购买 nike

我有一个数组数组。

let myArr = [[1,2,3],[1,2,3],[3,4,5],[5,6,7],[5,6,7]];

我想过滤 myArr 中的所有重复数组,以便它只存储唯一的数组:

let myArr = [[1,2,3],[3,4,5],[5,6,7]];

我认为通过将 myArr 转换成一个集合,它会清除所有“重复”值,然而,它没有:

let mySet = new Set(myArr);
// Set is: {[1,2,3],[1,2,3],[3,4,5],[5,6,7],[5,6,7]}

如何正确过滤 myArr 以仅包含唯一元素?

最佳答案

您可以将字符串数组作为集合的值,然后将数组映射回去。

var array = [[1, 2, 3], [1, 2, 3], [3, 4, 5], [5, 6, 7], [5, 6, 7]],
unique = Array.from(
new Set(array.map(a => JSON.stringify(a))),
json => JSON.parse(json)
);

console.log(unique);

如果您需要原始数组,则可以使用 Set 进行过滤。

var array = [[1, 2, 3], [1, 2, 3], [3, 4, 5], [5, 6, 7], [5, 6, 7]],
unique = array.filter(
(s => a => (j => !s.has(j) || s.set(j))(JSON.stringify(a)))
(new Set)
);

console.log(unique);

关于Javascript - 从集合中删除重复的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53420290/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com