我有一个二维数组和两个一维数组。我必须在 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 和索引
答案 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
然后他们做一个循环来进行比较。