ogurec222
@ogurec222
Люблю программировать, но только учусь

Как узнать есть ли у элемента пара?

Допустим, есть 2 массива
array1 = [1, 2, 3];
array2 = [1, 2, 3];

И если по порядку в одном и другом массиве идут одинаковые элементы, то выводим +1 к счетчику. (делать через цикл for). Вроде задание легкое, но я совсем забыл как такое делать...
  • Вопрос задан
  • 104 просмотра
Решения вопроса 3
KulakovAngel
@KulakovAngel
Full Stack Developer (Node.JS)
const array1 = [1, 2, 3];
const array2 = [1, 2, 3, 5];
let counter = 0;

for (let i=0; i<array1.length; i++) {
    if (array1[i] === array2[i]) {
        counter++;
    }
}


Стоит отметить, что я исхожу их предположения, что массивы одинаковой длины, и что элемент массива- примитивный тип данных (число, строка, bool). Просто сравниваем элемент по индексу в одном и другом массивах.

В варианте для массивов разной длины вначале определим наименьшую длину (так как нет смысла идти по более длинному массиву, совпадение в более коротком не может существовать - нет соотв. индекса)
const array1 = [1, 2, 3];
const array2 = [1, 2, 3, 5];
const minLength = array1.length <= array2.length ? array1.length : array2.length;
let counter = 0;

for (let i=0; i<minLength; i++) {
    if (array1[i] === array2[i]) {
        counter++;
    }
}
Ответ написан
0xD34F
@0xD34F Куратор тега JavaScript
const count = array1.reduce((acc, n, i) => acc + (n === array2[i]), 0);

или

const count = array1.filter((n, i) => n === array2[i]).length;
Ответ написан
dollar
@dollar
На чёткий вопрос - чёткий ответ.
array1 = [1, 2, 3];
array2 = [1, 2, 3];

var len = Math.min(array1.length, array2.length); //длина
var cnt = 0; //счетчик

for (let i=0; i<len; i++) {
  let is_pair = (array1[i] === array2[i]);
  if (is_pair) cnt++;
}
console.log("Счётчик: ",cnt);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Artezio Нижний Новгород
от 130 000 до 180 000 ₽
Intspirit Краснодар
от 80 000 до 150 000 ₽
Artezio Москва
от 160 000 до 220 000 ₽