我使用JavaScript来比较单一阵列和多维数组。在这里,我想比较那些2阵列和所述匹配的值应该被显示。
arr[1,2,3]
值。这是我的代码::我已经迈出了单一阵列等多维数组
var arr = [1,2,3];
var md2 = [[23,8,2],[1,5,8],[1,2,3],[8,5,2]];
for(var j=0; j<md2.length ; j++){
if(arr == md2[j]){
console.log(arr + " ... " + md2[j]);
}
}
必需的O / P: - [1,2,3]
应该匹配,并应显示在控制台
您可以使用.find()
和.every()
方法来寻找多维数组内数组:
var arr1 = [1,2,3];
var arr2 = [1,2,5];
var md2 = [[23,8,2],[1,5,8],[1,2,3],[8,5,2]];
var searchAndPrint = (a1, a2) => {
let arr = a1.find(a => a.every((v, i) => v === a2[i]));
if(arr)
console.log(arr);
else
console.log("No Results");
};
searchAndPrint(md2, arr1);
searchAndPrint(md2, arr2);
你不能在JS比较arrays
。如果你想比较简单的数组,你可以将它们转换为string
比较。这种方法并不适用于含有阵列objects
。
var arr = [1,2,3];
var md2 = [[23,8,2],[1,5,8],[1,2,3],[8,5,2]];
for(var j=0; j<md2.length ; j++){
if(arr.toString() === md2[j].toString()){
console.log(arr + " ... " + md2[j]);
}
}
您可以使用JSON.stringify
比较阵列。
var arr = [1,2,3];
var md2 = [[23,8,2],[1,5,8],[1,2,3],[8,5,2]];
for(var j=0; j<md2.length ; j++){
if(JSON.stringify(arr) === JSON.stringify(md2[j])){
console.log(arr + " ... " + md2[j]);
}
}
对于检查,你需要直接检查长度和项目,因为你没有相同的对象引用。
var arr = [1, 2, 3],
md2 = [[23, 8, 2], [1, 5, 8], [1, 2, 3], [8, 5, 2]];
console.log(md2.some(a => arr.length === a.length && a.every((v, i) => v === arr[i])));