当前位置: 首页 > 面试题库 >

如何在两个数组中找到匹配的值?[重复]

笪欣嘉
2023-03-14
问题内容

我有两个数组,我希望能够比较两个数组,只返回匹配的值。例如,两个数组都具有值,cat因此将返回该值。我还没找到这样的东西。返回相似度的最佳方法是什么?

var array1 = ["cat", "sum","fun", "run"];
var array2 = ["bat", "cat","dog","sun", "hut", "gut"];

//if value in array1 is equal to value in array2 then return match: cat

问题答案:

自然,我的方法是循环遍历第一个数组一次并检查第二个数组中每个值的索引。如果索引为> -1,则将push其添加到返回的数组中。

​Array.prototype.diff = function(arr2) {
    var ret = [];
    for(var i in this) {   
        if(arr2.indexOf(this[i]) > -1){
            ret.push(this[i]);
        }
    }
    return ret;
};

我的解决方案不像其他循环那样使用两个循环,因此它的运行速度可能会更快一些。如果要避免使用for..in,则可以先对两个数组进行排序,以重新索引其所有值:

Array.prototype.diff = function(arr2) {
    var ret = [];
    this.sort();
    arr2.sort();
    for(var i = 0; i < this.length; i += 1) {
        if(arr2.indexOf(this[i]) > -1){
            ret.push(this[i]);
        }
    }
    return ret;
};

用法如下所示:

var array1 = ["cat", "sum","fun", "run", "hut"];
var array2 = ["bat", "cat","dog","sun", "hut", "gut"];

console.log(array1.diff(array2));

如果您在扩展Array原型时遇到问题/问题,则可以轻松地将其更改为函数。

var diff = function(arr, arr2) {

并且其中FUNC原本说你随时随地更改thisarr2



 类似资料:
  • 问题内容: 这个问题已经在这里有了答案 : 8年前关闭。 可能重复: Python:如何查找列表交集? 我在.txt中有两个数据列表 我想找出在两个列表中都出现的名字。我该怎么做? 问题答案: 使用集: 该运营商表示“给我这两个集合的交集” 或者,您可以使用以下方法:

  • 我实现了以下代码: 但是,它同时返回和,即使在考虑我报告的数组时,我只打印(因为数组#1包含) 有什么办法可以修正我的代码吗?谢谢你

  • 我需要根据PHP中的最小值和最大值在数组中查找匹配项。如果没有详细的foreach、if、elseif、then子句,如何有效地获取匹配行? 例如给定数组(如下)和数字,如何返回数组行、和? 我希望把它变成一个函数。大概是这样的: 上述的预期结果应该是行、和。但我希望它适用于1到100之间的任何整数。

  • 问题内容: 如何为给定的目标值搜索和查找数组中最接近的值? 假设我有这个示例数组: 例如,当我用目标值0搜索时,该函数应返回0;否则,该函数将返回0。当我搜索3时,它将返回5;当我搜索14时,它将返回12。 问题答案: 将您要搜索的数字作为第一个参数,将数字数组作为第二个参数:

  • 问题内容: 我有两个数组 我需要将此合并到以编程方式匹配用户ID的单个数组 最终的数组应该像 有没有一种更清洁的方法来执行此操作,我的应用程序中有下划线库,但是我找不到一种干净的方法来实现此目的 问题答案: 使用下划线的解决方案: _.map 跨成员 使用 _.findWhere 查找匹配的成员信息 **** _。省略 匹配成员信息中的ID密钥 _。 使用会员信息 扩展 会员

  • 问题内容: 我有两个numpy数组A和B。A包含唯一值,而B是A的子数组。 例如: 问题答案: 您可以使用带有- 如果您关心维护订单,也可以使用- 对于一般情况,当&是未排序的数组时,您可以在中引入选项,就像这样- 为了解决一般情况,我还会添加我最喜欢的内容- 样品运行-