@qwqwz

Как можно сократить этот код?

Задача:
Выведите на экран только те числа из массива, которые начинаются на цифру 1, 2 или 5.

Моё решение:
let arr = [10, 20, 30, 50, 235, 3000];
for (let i = 0; i < arr.length; i++) {
    if (Number((arr[i]+'')[0]) == 1 || Number((arr[i]+'')[0]) == 2 || Number((arr[i]+'')[0]) == 5) {
        console.log(arr[i]);
    }
}

Можно как-нибудь сократить код или сделать его лаконичней?
  • Вопрос задан
  • 341 просмотр
Решения вопроса 3
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
const arr = [10, 20, 30, 50, 235, 3000];
const digits = [1, 2, 5];
for (const num of arr) {
  const digit = (num / 10 ** (Math.log10(num) | 0)) | 0;
  if (digits.includes(digit)) {
    console.log(num);
  }
}
Ответ написан
Комментировать
@n1ksON
мидл
let arr = [10, 20, 30, 50, 235, 3000];
arr.forEach(item => ['1', '2', '5'].includes(String(item)[0]) && console.log(item))
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
arr.filter((n) => ['1', '2', '5'].includes(`${n}`[0])).forEach(n => console.log(n));
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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