我有一些 arrays,例如:
a = [1, 2];
b = [2];
和
a = [1, [2], [[3]]];
b = [[2], [[3]]];
如何从单维和 n 维 arrays 返回重复的 values?你能帮助我吗?
回答1
对只返回骗子的想法很感兴趣,我玩弄了这个功能。它使用 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/flat 和 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/concat 将所有内容压入单个一维数组,然后使用 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce 和 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter 仅返回重复项。
const returnDupes = (arr1, arr2) => {
let arr = arr1.concat(arr2).flat(5);
return arr.reduce((acc, n) => {
if (arr.filter(a => a === n).length > 1 && acc.indexOf(n)===-1) acc.push(n)
return acc;
}, [])
}
let a = [1, [2], [[3]]], b = [[2], [[3]]];
console.log(returnDupes(a,b))
a = [1, 2]
b = [2];
console.log(returnDupes(a,b))