@Lolipop999

Как метод filter работает с includes в этом коде?

Дан массив числами, например: [10, 20, 30, 50, 235, 3000].
Выведите на экран только те числа из массива, которые
начинаются на цифру 1, 2 или 5.

Нашел такое решение

let arr = [10, 20, 30, 50, 235, 3000];
 
console.log(arr.filter(num => ['1','2','5'].includes(num.toString()[0])))


Никак не могу до конца понять, как работает этот код. Для чего нужно num.toString() и можно ли сделать с помощью startWith или же этот метод работает только со строкой?
  • Вопрос задан
  • 137 просмотров
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
arr.filter() будет передавать по очереди каждое из чисел массива arr в функцию,
и оставит в выходном массиве только те числа, для которых функция вернула true. См. документацию Array.prototype.filter()

Функция должна вернуть true для чисел, у которых первая цифра 1, 2 или 5.

Один из способов – сделать из числа текстовую строку, и взять её первый символ. Т.е. первую цифру, тоже как текст.

К строке текста в JavaScript можно обращаться как к массиву – забирая по индексу одну из букв:
"Habr"[0] // "H" вот тут такой вариант и используют.

Метод startsWith() — метод строки. Есть только у строки. Тоже годится для получения из строки текста первого символа. Но [0] короче.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы