1.数组去重
let arr = [3, 5, 2, 2, 5, 5];let setArr = new Set(arr) // 返回set数据结构 Set(3) {3, 5, 2}//方法一 es6的...解构let unique1 = [...setArr ]; //去重转数组后 [3,5,2]//方法二 Array.from()解析类数组为数组let unique2 = Array.from(setArr ) //去重转数组后 [3,5,2]//方法三 数组的reduce方法let arrResult = arr.reduce((pre,cur) =>{if(!pre.includes(cur)){pre.push(cur)}return pre;},[])
注1:JavaScript reduce() 方法 注2:JavaScript Array filter() 方法 注3:Array.from() 方法 注4:Set是es6新增的数据结构,似于数组,但它的一大特性就是所有元素都是唯一的,没有重复的值,我们一般称为集合。 注5:Map
2.筛选2个数组的交集
1.数组filter、includes方法
// 输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]// 输出: [9,4]var intersection = function(nums1, nums2) {return [...new Set(nums1.filter((item)=>nums2.includes(item)))]};
2.new Set 的 has 方法
let a = new Set([1, 2, 3]);let b = new Set([4, 3, 2]);// 并集let union = new Set([...a, ...b]);// Set {1, 2, 3, 4}// 交集let intersect = new Set([...a].filter(x => b.has(x)));// set {2, 3}// (a 相对于 b 的)差集let difference = new Set([...a].filter(x => !b.has(x)));// Set {1}
