关于如何比较多个数组的确切顺序和内容的建议

advice on how to compare the exact order and contents of multiple arrays

本文关键字:顺序 比较 于如何 数组      更新时间:2023-09-26

目前我正在尝试使用 for.. 比较 2 个数组的内容。循环中,但没有成功。我熟悉如何分别获取每个数组的内容,但不确定如何匹配每个内容。基本上,如果数组的相同索引值中的 2 个值不匹配,我想返回 false 否则继续。我的最新尝试是我尝试将两个数组放在同一个 for..使用不同的变量,然后比较这些变量。如果有人能就此提出建议,那就太好了。

.JS

var list1 = [1, 2, 3, 4, 5, 6];
var list2 = [1, 2, 3, 4, 5, 'e'];
var i, j;
for (i in list1 && j in list2) {
    if (list1[i] !== list2[j]) {
        return false
    } else {
        return true
    }
}
/*for ( j in list2 ) {
console.log( list2[j] )        
}*/​

数组元素的迭代是使用法线 for 循环完成的:

if (list1.length != list2.length) {
    // Different length, cannot be equal
    return false;
}
// Check if there is a mismatch
for (var i = 0; i < list1.length; i++) {
    if (list1[i] !== list2[i]) {
        return false; // Return here, because we don't need to compare the rest
    }
}
return true;
var i, l = list1.length;
for( i = 0; i < l; ++i ) {
    if( list1[i] !== list2[i] ) {
        return false; //Compare one by one
    }
}
if( i !== list2.length ) {
    return false; // In case list2 was longer than list1
}
return true;

为此使用常规循环,并且不要在循环内返回true,那么您将只比较第一个元素:

for (var i = 0; i < list1.length; i++) {
    if (list1[i] !== list2[i]) {
        return false
    }
}
return true;

这是解决有问题的样本数据问题的最简单方法,而不是好奇心。

 return list1.toString() == list2.toString();

它将处理大部分数据,包括:带逗号的字符串并检查类型相等性。

顺便说一句。

我认为,我找到了其他方式 - 讨论:

return   !(list1<list2 || list1>list2);

任何人?