我已经被这个问题困扰三天了...请有人帮助我。
挑战5
构造一个函数intersection
比较输入数组并返回一个新数组,其中包含在所有输入中找到的元素。
function intersection(arrayOfArrays) {
}
console.log(intersection([[5, 10, 15, 20], [15, 88, 1, 5, 7], [1, 10, 15, 5, 20]]));
// should log: [5, 15]
Reduce数组到Map计数,以值作为键。Spread地图到entries. Use Array.filter()在地图的条目上删除所有条目,其值不等于arrayOfArrays
长度。使用以下命令从条目中提取原始数字Array.map():
function intersection(arrayOfArrays) {
return [...arrayOfArrays.reduce((r, s) => {
s.forEach((n) => r.set(n, (r.get(n) || 0) + 1));
return r;
}, new Map())]
.filter(([k, v]) => v === arrayOfArrays.length)
.map(([k]) => k);
}
console.log(intersection([[5, 10, 15, 20], [15, 88, 1, 5, 7], [1, 10, 15, 5, 20]]));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)