leetcode 349 两个数组的交集 (JS数组方法)

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-22 15:11   11   0
/**
 * 给定两个数组,编写一个函数来计算它们的交集。
 * @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)))]
    })
}

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP