当前位置:  开发笔记 > 编程语言 > 正文

比较javascript中常见值的未指定数量的数组

如何解决《比较javascript中常见值的未指定数量的数组》经验,为你挑选了1个好方法。

我想知道如何比较两个或更多 - 可能是无限的 - 数组的常见值,并有效地将这些值推入一个新的数组.下面我有一个函数可以接受无限的参数,但我不确定这是否是一个好的开始.PHP似乎有一个方法可以做我想要的array_intersect.javascript提供类似的东西吗?

注意:我已经找到了如何使用两个左右的数组来完成此示例的示例,但我还没有找到如何将此类方法应用于未指定数量的数组的示例.因此,我不认为这是一个重复的问题.

为了进一步澄清,阵列可能充满了任何东西.字母,数字,符号,单词,你的名字,它可能在那里.

var sampleOne = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
var sampleTwo = [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18];

function FindDirectRelation() {
    for(var i = 0; i < arguments.length; ++i) {
        console.log(arguments[i]);
        

    };
};

var directRelation = FindDirectRelation(sampleOne, sampleTwo);

我仍然是编码新手,所以请确保以一种简单易懂的方式解释所有内容.



1> dandavis..:

使用与2个数组一起使用的现有相交,我们可以使用内置reduce()方法将一个公共子集链接在一个需要交叉的数组数组上:

function intersect(a, b) {
  var aa = {};
  a.forEach(function(v) { aa[v]=1; });
  return b.filter(function(v) { return v in aa; });
}

var r1=[1,2,3], 
r2=[1,3,4,5], 
r3=[5,1,3];

alert([r1, r2, r3].reduce(intersect)) // shows: 1,3

如果你将"intersect"定义为只是在多个数组中(不是每个数组),那么它就更复杂了......

推荐阅读
Chloemw
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有