将 [[1,2,3],[1,2,3],[2,3]] ->变为 [[1,2,3],[2,3]]
直接上代码:
const binaryArrayDuplicate = (arr) => {
let obj = {};
const out = [];
for (let index = 0; index < arr.length; index++) {
if (!obj[arr[index]]) {
out.push(arr[index]);
obj[arr[index]] = true;
}
}
return out;
};
console.log(
binaryArrayDuplicate([
[1, 2, 3],
[1, 2, 3],
[2, 3],
])
);
为什么这样可以去重呢?
当以[1,2,3]作为obj的key时,会调用该数组的toString方法将其转化为字符串。实际上obj的key为 '1,2,3',转化后续数组也是同样如此。所以,如果去重的一维数组数值的顺序不一致,在用此函数转化时会认为是两个不相同的key.