Функция every()
используется для логической проверки каждого элемента в массиве.
Так что если у вас есть:
const array = [0, 10, 14];
Ивопрос в том, хотите ли вы знать, если каждое значение в этом массиве больше 5.
Вы можете написать код, который выглядит следующим образом:
array.every((val) => val > 5);
Мы бывозьмите массив, вызовите для него функцию every()
и передайте функцию для вызова каждого элемента массива.Таким образом, я передал val
и проверил, что 0 больше 5, что вернет false.
Когда запускается функция every()
, она проверяет значение return
при каждом запуске функции, если она естьвозвращает false , тогда общее выражение также возвращает false , однако, если оно возвращает true для каждого элемента, все выражение функции возвращает true.
Таким образом, оно возвращает сравнение для каждого элемента в массиве..
Имейте в виду, что вы выполняете вдвое больше работы, используя помощник массива every()
для разрешения палиндрома.Это решение, но оно выполняет вдвое больше работы, чем нужно.
Таким образом, причина, по которой вы вернули ложь, заключается в том, что каждый персонаж не является зеркальным отражением персонажа на другой стороне.
Что вы здесь говорите:
return char === str[str.length - i - 1];
возвращает сравнение между первым элементом и зеркальным элементом на другой стороне массива.
[abaasa]
a === a // true
b === s // false
a === a // true
Там есть ложь, поэтому это не палиндром.
Для того, чтобы быть палиндромом:
[abaaba]
a === a // true
b === b // true
a === a // true