如何在 JavaScript 中比较一维数组和二维数组?

时间:2021-06-17 13:42:20

标签: javascript arrays

我有一个二维数组和两个一维数组。我必须在 JavaScript 中将一维数组与二维数组进行比较。我已经编写了以下代码,但它不起作用。任何帮助将不胜感激。

<p class="pagination-numbers">
  <a class="" href="/content/go2bank/en/blogs/blog-list-page-1.html"> 1 </a>
  <a href="/content/go2bank/en/blogs/blog-list-page-1.2.html"> 2 </a>
  <a href="/content/go2bank/en/blogs/blog-list-page-1.3.html"> 3 </a>
  <a href="/content/go2bank/en/blogs/blog-list-page-1.4.html"> 4 </a>
  <a href="/content/go2bank/en/blogs/blog-list-page-1.5.html"> 5 </a>
  <a href="/content/go2bank/en/blogs/blog-list-page-1.6.html" class="active"> 6 </a>
  <a href="/content/go2bank/en/blogs/blog-list-page-1.7.html"> 7 </a>
</p>

我使用 'col' 数组来存储要比较的列的索引,在这种情况下,第一列的值为 0,其中值为 cat、parrot 等。我需要的是,如果 'key' 数组的所有元素都与任何 'arr' 数组匹配,那么它应该在 'arr' 中打印匹配数组的 true 和索引

2 个答案:

答案 0 :(得分:1)

根据您在评论中提到的内容,如果您只想检查 key 数组中的所有值是否包含在另一个数组列表 arr 中。那么您不一定需要 col 数组,以下脚本应该可以工作。

var arr = [
  ["Cat", "Brown", 2],
  ["Parrot", "Brown", 1],
];

var key = ["Parrot", "Brown"];

for (let i = 0; i < arr.length; i++) {

  // Current array from array of arrays, which you want to search  
  let array_to_be_searched = arr[i];

  // Let's initially assume that all the elements of the key are included in this one
  let isMatched = true;

  for (let j = 0; j < key.length; j++) {
    if (!array_to_be_searched.includes(key[j])) {
      isMatched = false;
      break;
    }
  }

  // If our assumption is correct
  if (isMatched) {
    document.write(true); // Write true :)
    document.write(i); // Index of current array
  }
}

答案 1 :(得分:0)

您得到的输出是“011”而不是“001”是键中“鹦鹉”的索引,然后是键中“棕色”索引的两倍。 阅读您的评论后,我明白您的意思是“鹦鹉”和“棕色”应该作为 arr 子数组中的一组找到。

所以你做了错误的比较 - 检查这个回答者做正确的 - Check if an array contains any element of another array in JavaScript

然后他们做一个循环来进行比较。