Работа с массивами и вложенными циклами — распространенная задача в JavaScript. В этой статье мы рассмотрим несколько методов извлечения общих элементов из массивов с использованием вложенных циклов. Мы предоставим примеры кода для каждого метода, чтобы вы могли выбрать тот, который лучше всего соответствует вашим требованиям.
Метод 1: наивный подход
Мы можем использовать два вложенных цикла для сравнения каждого элемента первого массива с каждым элементом второго массива. Если общий элемент найден, его можно поместить в новый массив.
function findMutualElements(arr1, arr2) {
const result = [];
for (let i = 0; i < arr1.length; i++) {
for (let j = 0; j < arr2.length; j++) {
if (arr1[i] === arr2[j]) {
result.push(arr1[i]);
}
}
}
return result;
}
const array1 = [1, 2, 3, 4, 5];
const array2 = [4, 5, 6, 7, 8];
const mutualElements = findMutualElements(array1, array2);
console.log(mutualElements); // Output: [4, 5]
Метод 2: использование Array.filter() и Array.includes()
Мы можем использовать метод filter()
вместе с методом includes()
для поиска общих элементов между массивами.
function findMutualElements(arr1, arr2) {
return arr1.filter((element) => arr2.includes(element));
}
const array1 = [1, 2, 3, 4, 5];
const array2 = [4, 5, 6, 7, 8];
const mutualElements = findMutualElements(array1, array2);
console.log(mutualElements); // Output: [4, 5]
Метод 3: использование Set и Array.filter()
Мы можем использовать Set
для создания уникальных наборов каждого массива, а затем использовать filter()
для поиска общих элементы.
function findMutualElements(arr1, arr2) {
const set1 = new Set(arr1);
const mutualElements = arr2.filter((element) => set1.has(element));
return mutualElements;
}
const array1 = [1, 2, 3, 4, 5];
const array2 = [4, 5, 6, 7, 8];
const mutualElements = findMutualElements(array1, array2);
console.log(mutualElements); // Output: [4, 5]
Метод 4: использование Array.reduce() и Array.includes()
Мы можем использовать метод reduce()
вместе с includes()
для поиска общих элементов.
function findMutualElements(arr1, arr2) {
return arr1.reduce((result, element) => {
if (arr2.includes(element)) {
result.push(element);
}
return result;
}, []);
}
const array1 = [1, 2, 3, 4, 5];
const array2 = [4, 5, 6, 7, 8];
const mutualElements = findMutualElements(array1, array2);
console.log(mutualElements); // Output: [4, 5]
В этой статье мы рассмотрели несколько методов передачи элементов взаимного массива во вложенный цикл в JavaScript. Мы рассмотрели простой подход с использованием вложенных циклов, а также более краткие методы, использующие методы манипулирования массивами, такие как filter()
, includes()
, Set
и <. с>13. Применяя эти методы, вы можете эффективно находить и собирать общие элементы из массивов. Выберите метод, который соответствует вашим потребностям, и соответствующим образом оптимизируйте свой код.
Не забывайте тестировать и сравнивать различные методы с учетом конкретных случаев использования, чтобы определить наиболее эффективное решение для вашего приложения.