公共项查找之数组

概念 :

数据检索的一个分支:从多组数据结构中,找到公共项的方式。

一、公共子项查找

    --两组与多组

        两组思路:我们是不是可以把第一个数组的每一项对应的在后一个数组中进行遍历查找,如果找到匹配的对应的项,就把他存储起来,这样就可以得到想要的公共子项了,这很明显是一个双循环的嵌套操作。

以下先去重,再比对。

    多组思路:先把这个大数组合并成一个数组(每个数组都去重),循环这个新数组,新建一个json,这个json一上来是没有属性1的,所以为了能够走进if判断语句,需要取反,然后将json的第一项设置成一个数组:新数组的第一项

然后第二次循环进来了,如果是1的话,就走到了else,这个时候再将json的第一个数组中push进去这个1,所以在最终,json[1] 就是[1,1,1],这个时候就很明显了,json的每一项,哪一项的长度等于原数组的长度,那么这一项就是数组中每一项都共有的。

letarr=[[1,1,2,45,3],[2,1,4,5,45,6],[7,8,45,2]];

functionpublic(arr) {

varwholeArr=[];

varjson={};

for(vari=0;i

wholeArr=wholeArr.concat(unqiue(arr[i]))

};

for(vari=0;i

if(!json[wholeArr[i]]){

json[wholeArr[i]]=[wholeArr[i]]

}else{

json[wholeArr[i]].push(wholeArr[i])

}

}

}

console.log(public(arr))

functionunqiue(arr){

varjson={}

varresult=[]

for(vari=0;i

if(!json[arr[i]]){

json[arr[i]]=1;

result.push(arr[i])

}

}

returnresult

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容