Задать вопрос
@anyuta_ks

Как определить первые цифры чисел массива?

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

Как я могу определить первые цифры чисел массива?

let arr = [10, 20, 30, 50 ,235, 3000];
let first = ???
for (let i = 0; i < arr.length; i++){
 if (first == 1 || first == 2 || first == 5) {
    console.log (arr[i]);
}
}
  • Вопрос задан
  • 2553 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 2
0xD34F
@0xD34F Куратор тега JavaScript
Если исправлять/дополнять существующий код, то, во-первых, определять первую цифру надо для каждого из элементов массива отдельно, т.е. let first = вам следовало разместить внутри цикла, а не перед ним; во-вторых, проще всего получить цифру старшего разряда можно превратив число в строку и взяв нулевой символ. Т.е., вы пытались изобразить нечто подобное:

for (const n of arr) {
  const [ first ] = String(n);
  if (first == 1 || first == 2 || first == 5) {
    console.log(n);
  }
}

Но вообще, можно сделать и иначе.

Вместо трёх проверок достаточно одной, если допустимые первые цифры представлены в подходящем виде, например, будут являться...

// ...строкой
const first = '125';
const startsWithFirst = n => !!~first.indexOf(`${n}`[0]);

// ...массивом чисел
const first = [ 1, 2, 5 ];
const startsWithFirst = n => first.includes(n / (10 ** (Math.log10(n) | 0)) | 0);

// ...регулярным выражением
const first = /^[125]/;
const startsWithFirst = n => first.test(n);

Кроме того, цикл в явном виде не нужен, собираем и выводим подходящие числа:

// все сразу
console.log(arr.filter(startsWithFirst));

// или по одному
arr.forEach(n => startsWithFirst(n) && console.log(n));
Ответ написан
Комментировать
Alexandre888
@Alexandre888
Javascript-разработчик
const arr = [10, 20, 30, 50, 235, 3000];

for (let i = 0; i < arr.length; i++) {
  if (String(arr[i]).startsWith("1") || String(arr[i]).startsWith("2") || String(arr[i]).startsWith("5")) {
  	console.log(arr[i])
  }
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@elena28-ctrl
обучаюсь web-разработке
let arr = [10, 20, 30, 50, 235, 3000];

for (var i = 0; i < arr.length; i++) {

if (String(arr[i])[0] == '1' || String(arr[i])[0] == '2' || String(arr[i])[0] == '5') {

console.log(arr[i]);
}
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы