Как узнать, содержит ли массив вложенный массив с определенными значениями?

Как правильно перебрать массив shipMisses, чтобы увидеть, содержит ли он вложенный массив с конкретными значениями [2, 4] (переменная dName)?

Вот мой код:

shipMisses.includes(dName) // shipMisses = [[0, 1], [2, 4]]
                           // dName = [2, 4]

Конкретный вложенный массив или любой вложенный массив, имеющий эти значения?

Bergi 08.07.2024 04:55
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
1
50
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы можете использовать функцию обратного вызова для сравнения. Вот пример:

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, чтобы проверить, является ли хотя бы один элемент:

  • массив и
  • равен заданному массиву (один из способов проверки – метод JSON.stringify)

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

Другие вопросы по теме