#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)