找出公共数组

题目描述:

case1:

    arr1 = [1,2,3]

    arr2 = [1,2,3,4]

    输出:[1,2,3] 

case2:

    arr1 = [1,2,2,3]

    arr2 = [1,2,2,3,4]

    输出:[1,2,2,3]

题解:

// 数组转json
// [1,2,3,3,3] => {1:1,2:1,3:3}
// 输出描述:key为数组项的值,value为这个值出现的次数
const arr2json = (arr) => arr.reduce((prev, item) => {
    if (prev[`${item}`]) {
        prev[`${item}`]++
    } else {
        prev[`${item}`] = 1
    }
    return prev;
}, {})

const findSame = (arr1, arr2) => {
    const json = arr2json(arr2);
    return arr1.filter((item)=>{
        if(json[`${item}`]>0){
            json[`${item}`]--;
            return item;
        }
    })
}
var res  =findSame([1,2,3,4,5,5,6],[2,3,4,5,5,6]);
console.log(res);
发布了79 篇原创文章 · 获赞 9 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_33807889/article/details/104997939