码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2017-03-22 21:05:19      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:blog   main   bsp   log   turn   元素   加油   面试   数组元素   

昨天做了一道美团的面试题,要求是给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的份了。

加油咯!!!

 

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

标签:blog   main   bsp   log   turn   元素   加油   面试   数组元素   

原文地址:http://www.cnblogs.com/sowhite/p/6601425.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!