(欢迎留言交流和指出不足)
1.数组并集
给出两个数组,求他们的并集,这里有很多种解法,看面试官的条件去写,但实现的原理都大同小异
题目:a=[1,2,3] b=[1,3,5],则并集应为=>[1,2,3,5]
ES7的解法:使用includes + filter
let a = [1,2,3],b = [1,3,5]
a.concat(b.filter( e => !a.includes(e)))
//当然,若是带有重复项的数组要先进行去重再进行上述操作
//具体的数组去重方法见 第四条-数组去重
ES6的解法:使用Array.from结合Set结构实现数学集求解
let a = [1,2,3],b = [1,3,5]
Array.from(new Set(a.concat(b)))
ES5的解法:filter + indexOf()
let a = [1,2,3],b = [1,3,5]
a.concat(b.filter( e => a.indexOf(e)===-1))
2.数组交集
a=[1,2,3] b=[1,3,5],则数组交集 => [1,3]
ES7的解法:使用includes + filter
let a = [1,2,3],b = [1,3,5]
a.filter( e => b.includes(e))
//当然,若是带有重复项的数组要先进行去重再进行上述操作
//具体的数组去重方法见 第四条-数组去重
ES6的解法:使用Array.from结合Set结构实现数学集求解
let a = [1,2,3],b = [1,3,5]
let aSet = new Set(