比较一维阵列,与在JavaScript多维阵列

问题描述 投票:1回答:4

我使用JavaScript来比较单一阵列和多维数组。在这里,我想比较那些2阵列和所述匹配的值应该被显示。

  • 要搜索在多维数组“MD2” 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]应该匹配,并应显示在控制台

javascript arrays function multidimensional-array javascript-objects
4个回答
0
投票

您可以使用.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);

0
投票

你不能在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]);
  }
}

0
投票

您可以使用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]);
  }
}

0
投票

对于检查,你需要直接检查长度和项目,因为你没有相同的对象引用。

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])));
© www.soinside.com 2019 - 2024. All rights reserved.