JavaScript | Как найти одинаковые числа в двух массивах?

JavaScript | Как найти одинаковые числа в двух массивах?

Как найти пересечение между двумя массивами JavaScript?

У нас есть два массива с уникальными наборами чисел:

let arr1 = [1,2,3,4,5,6];
let arr2 = [4,5,6,7,8,9];

В каждом массиве число встречается ровно 1 раз.

Мы хотим получить такие числа, которые есть и в первом массиве и во втором. Как это сделать?

 

Получение массива повторяющихся чисел из двух массивов при помощи двух циклов FOR OF в JavaScript

Мы можем написать свою функцию, которая будет принимать два параметра — два массива.

function intersect(a, b){
  let new_arr = [];
  for(element_a of a){
    for(element_b of b){
    if(element_b == element_a){new_arr.push(element_a)}}
  }
  return new_arr;
};

Цикл FOR OF обегает значения в свойствах объектов. В нашем случаем массивы — это объекты класса Array по стандарту ECMAScript. Именно в этой функции нас не интересует цикл FOR или FOR IN.

Мы назвали нашу функцию именем «intersect» по аналогии с названием оператора в языке SQL.

 

Пример работы функции по нахождению повторяющихся чисел в двух массивах

Вызываем нашу функцию:

intersect(arr1, arr2)

Результат работы функции по массивам из чисел:

Нашли одинаковые числа, которые есть в обоих массивах JavaScript
Нашли одинаковые числа, которые есть в обоих массивах JavaScript

Результатом вызова нашей функции стал массив из чисел (класс Number). Каждый элемент нового массива присутствует как в первом массиве, так и во втором.

 

Данная функция также хорошо будет работать и с массивами из строк.

let arr3 = ['1','2','3','4','5','6'];
let arr4 = ['4','5','6','7','8','9'];

В каждом массиве строка встречается ровно 1 раз.

Вызываем нашу функцию:

intersect(arr3, arr4)

Результат работы функции по массивам из строк:

Нашли одинаковые строки, которые есть в обоих массивах JavaScript
Нашли одинаковые строки, которые есть в обоих массивах JavaScript

 

Информационные ссылки

Официальная страница стандарта ECMAScripthttps://tc39.es/ecma262/multipage/https://tc39.es/ecma262/

Объекты Arrayhttps://tc39.es/ecma262/#sec-array-objects

Цикл FOR OFhttps://tc39.es/ecma262/#sec-for-in-and-for-of-statements