Как сравнить элементы массива между собой в JS?

Рейтинг: 1Ответов: 2Опубликовано: 04.07.2023
Let arr = [‘январь’,’февраль’, ‘март’,]

Если все элементы массива равны между собой то вернуть в консоль true, если не равны то false.

Подскажите пожалуйста

Ответы

▲ 2
TL;DR
arr.every(item => item === arr[0])
Объяснение

arr.every берёт каждый элемент массива (в данном случае arr), и применяет callback (в данном случае item => item === arr[0]). Если все вызовы callback вернули положительное значение (например, true, число больше 1), то функция arr.every возвращает true, если нет - возвращает false.

Теперь о самой функции callback. Код этой функции:

item => item === arr[0]

В данном случае эта функция передаётся аргументом в функцию arr.every и проверяет, что аргумент item равняется первому элементу (arr[0]), и если так, возвращает true, а если нет, false.

Дополнение

Этот код лучше объявить как функцию в коде, чтобы не повторять одно и тоже:

function everyItemsSameInarr(arr) {
    return arr.every(item => item === arr[0]);
}

Потом можно использовать так, для примера:

if (everyItemsSameInarr(items)) {
    // сделать что-то
    console.log("Все элементы равны");
}
▲ 0

Наверное это уже не актуально... 😀

Но использование SET самое идеальное и быстрое решение этой задачи. По скорости обработки больших массивов - значительно быстрее

console.log(new Set(arr).size <= 1 ? "ПРАВДА" : "ЛОЖЬ");

или уложить в отдельную функцию: return new Set(arr).size <= 1 ? "ПРАВДА" : "ЛОЖЬ"