Как сравнить элементы массива между собой в JS?
Let arr = [‘январь’,’февраль’, ‘март’,]
Если все элементы массива равны между собой то вернуть в консоль true, если не равны то false.
Подскажите пожалуйста
Let arr = [‘январь’,’февраль’, ‘март’,]
Если все элементы массива равны между собой то вернуть в консоль true, если не равны то false.
Подскажите пожалуйста
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("Все элементы равны");
}
Наверное это уже не актуально... 😀
Но использование SET самое идеальное и быстрое решение этой задачи. По скорости обработки больших массивов - значительно быстрее
console.log(new Set(arr).size <= 1 ? "ПРАВДА" : "ЛОЖЬ");
или уложить в отдельную функцию: return new Set(arr).size <= 1 ? "ПРАВДА" : "ЛОЖЬ"