myArray.filter((arr) => Array.isArray(arr) && arr.length > 0)
Эта строка проверяет, является ли объект массива типом массива и не пустым
Подробнее о filter
Edit
const arrayOfValues = ["Potato", "Apple"];
myArray.filter((arr) => {
return Array.isArray(arr) && CheckArray(arrayOfValues, arr) && arr.length > 0
});
function CheckArray(Array, ArrayToCheck) {
let found = false;
for (const value of Array) {
if (ArrayToCheck.includes(value)) {
found = true;
}
}
return found;
}
Проверяет, содержит ли массив один из arrayOfValues
, и является ли объект массивом, а не пустым!
Редактировать 2
const myArray = [
{
Track: ["Potato", "Apple"],
data: [["Banna"],
["Potato", "Batman", "Orange"],
["Some", "Stuff"]],
},
{
Tack: null,
data: ["Some", "Stuff"],
},
];
myArray.map((arr) => {
return Array.isArray(arr.data) && CheckArray(arr.Track, arr.data);
}).filter(_ => !!_);
function CheckArray(arr, ArrayToCheck) {
if (!arr || !Array.isArray(arr)) {
return ArrayToCheck;
}
const foundArray = [];
if (ArrayToCheck.every(item => Array.isArray(item))) {
for (const subArr of ArrayToCheck) {
const ResultArray = CheckArray(arr, subArr);
if (ResultArray.length > 0) {
foundArray.push(ResultArray);
}
}
} else {
if (ArrayToCheck.map(val => arr.includes(val)).includes(true)) {
foundArray.push(ArrayToCheck);
}
}
return foundArray;
}
Проверяет, включает ли array
одно из следующих значений:Track
data, (работает для подмассивов (2d и т. Д.))