用reduce装逼 之 多个数组中得出公共子数组,统计数组元素出现次数

本文介绍了一种使用ES6 reduce方法来寻找多个数组间的公共子数组的方法,并提供了如何统计数组元素出现次数的示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

昨天做了一道美团的面试题,要求是给N个数组,找出N个数组的公共子数组。

var a = [7,2,3,4,5];
var b = [4,2,3,7,6];
var c = [2,3,3,3,7];
var d = [4,2,3,8,7];

以上四个数组,有公共子数组2, 3,7

function main(){
    var result = [];
    var arr = arguments[0];
    for(var i=1 ; i<arguments.length ; i++){
        var arr = arguments[i].reduce((a,item)=>{
            arr.indexOf(item)!=-1 && a.push(item)
            return a
        },[])
    }
    return arr
}

具体方法如上,es6清新脱俗的写法,用好reduce可以省好多事情。

 

同样得出以上数组的数组的元素出现次数应该怎么办;

function main(){
    var arr = [].reduce.call(arguments,(a,item)=>a.concat(item),[]);
    return arr.reduce((a,num)=>{
        a[num] && ++a[num] || (a[num]=1);
         return a
    },{})
}

 

 这个reduce有没有用的清新通俗呀。

我知道大家心里肯定想着好清新的一逼啊。

没错,学好reduce装逼,其他人只有喊666的份了。

加油咯!!!

 

转载于:https://www.cnblogs.com/sowhite/p/6601425.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值