当前位置: 首页 > 知识库问答 >
问题:

如何检查其他数组中存在的值,反之亦然

况嘉运
2023-03-14

我有两个数组,在我尝试测试任何东西之前,我不知道数组的值。我的意思是数组的长度是动态的

我的问题是如何检查两个数组是否有至少一个公共值

假设我有两个类似情况1的数组:

array1 = ["this", "is", "array"]
array2 = ["this"]

当我们用类似campareArray(array1,array2)的函数比较这些数组时,应该返回true,相同的数组如下:

array1 = ["this"]
array2 = ["this", "is", "array"]

应该返回true

什么是有效的方法?我们可以检查数组长度并检查索引从大到小还有其他好方法吗?

共有3个答案

韦寒
2023-03-14

只要找到这些数组之间的交点。参见下面的示例

 <script>
     var alpha = ["this", "is", "array"],
     beta = ["this"];

    $.arrayIntersect = function(a, b)
    {
        return $.grep(a, function(i)
        {
            return $.inArray(i, b) > -1;
        });
    };

    console.log( $.arrayIntersect(alpha, beta) );
 </script>
徐高懿
2023-03-14

您可以使用< code>filter()方法并获取两个数组的交集。

var array1 = ["this", "is", "array"],
  array2 = ["this"];

var result = array1.filter(function(n) {
  return array2.indexOf(n) != -1;
});
console.log("Arrays have common element: " + !!result.length)
console.log(result)
容俊豪
2023-03-14

使用 some() 方法,该方法检查数组中的任何元素是否通过测试(作为函数提供)

var array1 = ["this", "is", "array"];
var array2 = ["this"];

var haveOne = array1.some(function (n) {
  return array2.indexOf(n) >= 0;
});

console.log(haveOne);
 类似资料:
  • 这里有一个映射,我正在尝试检查数组中的值,如果它找到,则返回;如果它没有找到,则返回预期输出。根据我对和索引的了解,如果(x[index]===y[j]){condition=true}应该进入

  • 问题内容: 如何检查是否具有或的值? 问题答案: 使用? 顺便说一句,您要为键分配一个值两次,因此您的数组将导致一个只有一个值的数组。

  • 我有两个变量A和B,如果A=1,那么B应该B=2,如果A=2,那么B应该B=1,就像这样,有三对,最好的方法是什么,而不是只有if-else

  • 函数“howMany”只是统计了某个特殊的数值的出现次数,有时候我们需要统计每个数值出现的次数。可以用下面这个循环函数完成这项工作。 int numValues = 20; int upperBound = 10; apvector<int> vector = randomVector (numValues, upperBound); cout << "value\thowMany"; for

  • 问题内容: 我有一个名为“ bob”的数组,其中包含值。 我如何才能知道在没有迭代的情况下名为bob的数组中是否存在“傻”值? 问题答案: 您可以使用方法。为此,您需要将数组转换为列表。您可以使用以下方法:

  • 问题内容: 我正在尝试将a 转换为原始类型,反之亦然: 奇怪的是,当我尝试将新分配的分配回a时,结果不过是垃圾。 但是,当我使用原始数据类型作为参数时,似乎相同的算法工作得很好。 问题答案: 改用这些。