/**
* 给定两个数组,编写一个函数来计算它们的交集。
* @param {number[]} nums1
* @param {number[]} nums2
* @return {number[]}
*/
var intersection = function(nums1, nums2) {
let arr = []
for(let i=0; i<nums1.length; i++) {
// 不能用indexof,因为if判断的时候,indexof会返回下标,不是true/false
if(nums2.includes(nums1[i])) {
arr.push(nums1[i])
}
}
return Array.from(new Set(arr))
};
indexOf | 查找第一个,返回索引 |
includes | 返回布尔值 |
lastIndexOf | 查找最后一个,返回索引 |
every | 对数组运行给定函数,若每个元素返回true,则返回true。遇到false,遍历停止 |
some | 对数组运行给定函数,任意一个元素返回true,则返回true。遇到true,遍历停止 |
find | 查找,返回元素 |
findIndex | 查找,返回元素的索引 |
多尔数组取交集,在原先两个数组求交集的基础上使用reduce
/**
* function intersect(nums1,nums2){
* return [...new Set(nums1.filter((item)=>nums2.includes(item)))]
* }
* function intersectAll(...arrs){
* return resultArr = arrs.reduce(function(prev,cur){
* return intersect(prev,cur);
* })
* }
**/
function getIntersect(...arrs) {
return arrs.reduce(function(prev,cur){
return [...new Set(cur.filter((item)=>prev.includes(item)))]
})
}