• Как можно сократить код FizzBuzz до двух ифов?

    0xD34F
    @0xD34F Куратор тега JavaScript
    for (let i = begin; i <= end; i++) {
      let str = '';
      if (!(i % 3)) {
        str += 'Fizz';
      }
      if (!(i % 5)) {
        str += 'Buzz';
      }
      console.log(str || i);
    }

    А вообще, давайте лучше сократим до 0 if'ов:

    console.log(Array.from({ length: end - begin + 1 }, (_, i) => {
      i += begin;
      return (i % 3 ? '' : 'Fizz') + (i % 5 ? '' : 'Buzz') || i;
    }).join('\n'));
    
    // или
    
    for (let i = begin; i <= end; console.log('FizzBuzz'.slice(i % 3 && 4, 4 << !(i % 5)) || i), i++) ;
    Ответ написан
    Комментировать
  • Почему не работает перебор объекта JS?

    lastuniverse
    @lastuniverse
    Всегда вокруг да около IT тем
    https://developer.mozilla.org/ru/docs/Web/JavaScri...
    Этот метод позволяет точно добавлять или изменять свойства объекта. Обычное добавление свойств через присваивание создаёт свойства, которые можно увидеть через перечисление свойств (с помощью цикла for...in или метода Object.keys), чьи значения могут быть изменены и которые могут быть удалены. Этот же метод позволяет настроить эти дополнительные детали свойства.
    ...
    enumerable
    Равен true только в том случае, если это свойство можно увидеть через перечисление свойств содержащего его объекта.
    Значение по умолчанию установлено в false.


    таким образом вам надо делать так
    Object.defineProperty(obj, 'test', {value: 1, enumerable: true}); 
    Object.defineProperty(obj, 'test2', {value: 1, enumerable: true});
    Ответ написан
    3 комментария