我知道有很多关于唯一数组的答案,但它们无法处理数组中的数组。
我想要的是:
源数组
我想要的是:
源数组
[
1,
0,
true,
undefined,
null,
false,
['a', 'b', 'c'],
['a', 'b', 'c'],
['a', 'c', 'b'],
{ a: { b: 2 } },
{ a: { b: 2 } },
{ a: { b: 3 } },
{ a: { b: undefined } },
{ a: { } },
{ a: { b: 3, c: undefined } },
]
归还
[
1,
0,
true,
undefined,
null,
false,
['a', 'b', 'c'],
['a', 'c', 'b'],
{ a: { b: 2 } },
{ a: { b: 3 } },
{ a: { b: undefined } },
{ a: { } },
{ a: { b: 3, c: undefined } },
]
- arr-unique 可以处理 object[],但不能处理数组的数组
- Set 也不能
失败代码
console.log(array_unique(data));
console.log([...new Set(data)]);
console.log(data.filter(function (el, index, arr)
{
return index == arr.indexOf(el);
}));
===================
更新
我为此创建了一个模块array-hyper-unique,但没有使用JSON stringify,因为当值为正则表达式时它存在缺陷。
['a', 'b', 'c']
和['a', 'c', 'b']
是相同的吗? - Eddie