let arr = [ [1, 2, 3, 4], [3, 4, 6], [4, 5], ]; // 1、设置一个变量minArr,表示所有数据里最小长度的数组 // 后面通过这个最小长度数组的数据和其他的数据比较取交集的数据 let minArr = [], defaultArr = []; arr.forEach(i => { minArr = i; if (i.length < minArr.length) { minArr = i; } }); minArr.forEach(i => { state = []; // 2、这里因为要知道arr每个数组里是否包含的minArr当前循环的值i, // 所有设置了一个状态的数组state=[], // arr里的数组j如果包含i就往state里面push一个true,否则push一个false arr.forEach(j => { if (j.includes(i)) { state.push(true); } else state.push(false); }); console.log(state); // 3、最后一步通过对state状态数组对比每一个值是不是都是true // 来判断是否把这个i存进defaultArr交集的数组里 const status = state.every(i => { return i === true; }); // 只有arr所有的数组都包含这个值才存进defaultArr里 status && !defaultArr.includes(i) && defaultArr.push(i); }); console.log(defaultArr);
参考链接:https://blog.csdn.net/weixin_36706903/article/details/108534778