var obj = [[0,0],[0,1],[1,0],[1,1],[2,2]];
需要输出:Output = [[0,0], [1,1], [2,2]];
子数组中存在需要合并的类似值。
答案 0 :(得分:0)
您可以使用Set
获取唯一值,然后将数组与多个唯一项一起使用,并将其与仅一个唯一项连接。
var array = [[0, 0], [0, 1], [1, 0], [1, 1], [2, 2]],
unique = new Set(array.reduce((r, a) => r.concat(a), [])),
result = array
.filter(a => {
if (a[0] !== a[1] && a.every(b => unique.has(b))) {
a.forEach(b => unique.delete(b));
return true;
}
})
.concat(array.filter(a => {
if (a.some(b => unique.has(b))) {
a.forEach(b => unique.delete(b));
return true;
}
}));
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }