Задать вопрос
  • Как добавить стиль одному элементу массива?

    @ilona1697
    let arr = ['пн', 'вт', 'ср', 'чт', 'пт', 'сб', 'вс'];
    
    for (let i = 0; i < arr.length; i++) {
    if(arr[i] =='сб' || arr[i] == 'вс'){
    document.write('<b>' + arr[i] + ' </b>');
    }else{
    document.write(arr[i] + ' ');
    }
    }
    Ответ написан
    Комментировать
  • Как определить первые цифры чисел массива?

    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])
      }
    }
    Ответ написан
    Комментировать
  • Как определить первые цифры чисел массива?

    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 = 0b100110;
    const startsWithFirst = n => ((first >> ('' + n).charAt()) & 1) === 1;
    
    // ...регулярным выражением
    const first = /^[125]/;
    const startsWithFirst = n => first.test(n);

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

    // все сразу
    console.log(arr.filter(startsWithFirst));
    
    // или по одному
    arr.forEach(n => startsWithFirst(n) && console.log(n));
    Ответ написан
    Комментировать
  • Почему в данном примере логические операторы так отрабатывают?

    @Dalp
    Так в чём проблема? 99 и 10 не попадают в диапазон, if не срабатывает, выполняется код в блоке else, всё правильно.
    Ответ написан
    1 комментарий