В этой статье мы обсудим, как проверить, равны ли все элементы массива в JavaScript.
Есть несколько способов сделать это.
Давайте обсудим пару методов ниже.
Использование метода Array.prototype.every()
Метод Array.prototype.every() доступен начиная с ES5.
Метод Every() проверяет, соответствуют ли все элементы массива заданным критериям, указанным в функции.
Если ложное значение возвращается из-за несоблюдения критериев, метод Every() дает короткое замыкание. Как только метод every() находит элемент массива, который не соответствует заданным вами критериям, он немедленно возвращает false и не перебирает оставшиеся элементы.
Например, чтобы проверить, равны ли все элементы в массиве, мы можем использовать метод Every() следующим образом:
areArrayValuesEqual = (arr = []) => arr.every((val, i, arr) => val === arr[0]) areArrayValuesEqual([true, true, true, true]) /* true */ areArrayValuesEqual(['Goku', 'Goku', 'Goku']) /* true */ areArrayValuesEqual([1, 1, 1, 2]) /* false */ areArrayValuesEqual(['10', 10, 10, 10]) /* false */
Выше мы проверяем, что каждое значение совпадает с первым элементом в массиве. Если это то же самое, метод Every() возвращает true и переходит к следующему элементу. Если это не то же самое, метод Every() возвращает false и немедленно замыкает работу.
Использование Set.prototype.size
В ES6 мы можем использовать Set для проверки равенства элементов массива.
Объект Set хранит набор различных значений.
С учетом сказанного это делает Set полезным для простой проверки того, имеет ли массив одинаковые значения.
areArrayValuesEqual = (arr = []) => new Set(arr).size === 1 areArrayValuesEqual([true, true, true, true]) /* true */ areArrayValuesEqual(['Gohan', 'Gohan', 'Gohan']) /* true */ areArrayValuesEqual([1, 1, 1, 2]) /* false */ areArrayValuesEqual(['10', 10, 10, 10]) /* false */
Выше мы передаем наш массив в объект Set, который добавит в Set только отдельные значения из переданного массива.
Затем мы можем использовать свойство size объекта Set, которое возвращает количество уникальных элементов в объекте Set.
Итак, если наш Set возвращает 1, мы знаем, что наш массив имеет равные элементы.
Вот оно.
Используя JavaScript, у нас есть несколько решений для проверки того, имеет ли массив одинаковые значения. Обсуждаемые здесь методы — это метод Array.prototype.every() и использование объекта Set.
Дальнейшее чтение
Ссылки
Если у вас есть какие-либо вопросы/предложения, вы можете связаться со мной ниже:
Ссылка: https://www.linkedin.com/in/luke-sloane-bulger/