сравнить одномерный массив с многомерным массивом в JavaScript - PullRequest
0 голосов
/ 03 февраля 2019

Я использую JavaScript для сравнения одного массива и многомерного массива.Здесь я хочу сравнить эти 2 массива, и соответствующее значение должно быть показано.

  • arr[1,2,3] значение для поиска в многомерном массиве "md2".

Этомой код :: я взял один массив и другой как многомерный массив

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] должен совпадать и должен отображаться в консоли

Ответы [ 4 ]

0 голосов
/ 03 февраля 2019

Для проверки вам нужно проверить длину и элементы напрямую, потому что у вас нет той же ссылки на объект.

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])));
0 голосов
/ 03 февраля 2019

Вы не можете сравнить arrays в js.Если вы хотите сравнить простые массивы, вы можете преобразовать их в 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 голосов
/ 03 февраля 2019

Вы можете использовать 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 голосов
/ 03 февраля 2019

Вы можете использовать методы .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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...