Проверьте, содержит ли массив массивов значение в javascript

#javascript #arrays #ecmascript-6 #include

Вопрос:

Я знаю, что если есть массив значений, то необходимо использовать этот подход:

 console.log(['joe', 'jane', 'mary'].includes('jane')); // true
 

Но в случае массива массивов, есть ли короткий способ сделать это? Без других вычислений между ними.

Для этого ввода:

 [['jane'],['joe'],['mary']]
 

Комментарии:

1. arr.some((a) => a.includes("jane"));

Ответ №1:

Вы можете использовать плоский метод для выравнивания массива. Для большего количества сетевых массивов вы также можете упомянуть глубину, например, плоскую(глубина)

 let arr = [["jane"],["joe"],["mary"]];

arr.flat().includes('jane'); //true
 

Ответ №2:

Вы можете легко достичь этого результата, используя некоторые

 arr.some((a) => a.includes("jane"))
 
 const arr = [
  ["jane"],
  ["joe"],
  ["mary"]
];
const arr2 = [
  ["joe"],
  ["mary"]
];

console.log(arr.some((a) => a.includes("jane")));
console.log(arr2.some((a) => a.includes("jane"))); 

Ответ №3:

это также можно сделать, сначала выровняв 2d-массивы в 1 d aaray, а затем используя includes, чтобы определить, содержит ли массив элемент или нет

 var arr = [['jane'],['joe'],['marry']]
var newarr=[].concat(...arr)
var v=newarr.includes('jane')
console.log(v)