Как правильно перебрать массив shipMisses
, чтобы увидеть, содержит ли он вложенный массив с конкретными значениями [2, 4]
(переменная dName
)?
Вот мой код:
shipMisses.includes(dName) // shipMisses = [[0, 1], [2, 4]]
// dName = [2, 4]
Вы можете использовать функцию обратного вызова для сравнения. Вот пример:
const shipMisses = [[0, 1], [2, 4]];
const dName = [2, 4];
// Using Array.prototype.some() to iterate and check if any array matches dName
const containsDName = shipMisses.some(arr => arr[0] === dName[0] && arr[1] === dName[1]);
console.info(containsDName); // true
Вы можете использовать элемент Array#some
, чтобы проверить, является ли хотя бы один элемент:
const shipMisses = [[0, 1], [2, 4]];
const dName = [2, 4];
const arrayFound = shipMisses.some(
a =>
//check if the element is an array
Array.isArray(a)
//and
&&
//check if it equals dName
JSON.stringify(a) === JSON.stringify(dName)
);
console.info( arrayFound );
Используя тот же метод array
, вы также можете итерацией проверить, является ли хотя бы один элемент:
every
элемент этого массива равен соответствующему элементу в данном массивеconst shipMisses = [[0, 1], [2, 4], [6, 8, 0, 9]];
const dName = [6, 8, 0, 9];
const arrayFound = shipMisses.some(
a =>
//check if the element is an array
Array.isArray(a)
//and
&&
//check if lengths are equal
a.length === dName.length
//add
&&
//check if each element of a equals the corresponding element of dName
a.every((b,i) => b === dName[i])
);
console.info( arrayFound );
Конкретный вложенный массив или любой вложенный массив, имеющий эти значения?