@Lolipop999

Грамотно ли написан код?

Есть задание: Составьте массив дней недели. С помощью цикла for выведите все дни недели, а выходные дни выведите жирным. Я выполнил вот так. Это говнокод на убогих костылях или можно написать грамотнее?

const week = ['Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье'];

for (i = 0; i < week.length; i++) {
  document.write(week.slice(0,-2) + ',' + week.slice(-2).join().bold());
  break;
}
  • Вопрос задан
  • 283 просмотра
Решения вопроса 1
@StiflerProger
В вашем коде от цикла нет смысла, если без цикла просто
document.write(week.slice(0,-2).join(',') + ',' + week.slice(-2).join(',').bold());

то код хороший
в цикле надо перебирать по одному дню и выводить
const week = ['Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье'];

for (let i = 0; i < week.length; i++) {
  if (week[i] === 'Суббота' || week[i] === 'Воскресенье') {
    document.write(week[i].bold());
  } else {
    document.write(week[i]);
  }
}

чтобы не сравнивать выходные по названию, можно вместо строк использовать объекты
const week = [{title: 'Понедельник', weekend: false}, ... {title: 'Воскресенье', weekend: true}];

for (let i = 0; i < week.length; i++) {
  document.write(week[i].weekend ? week[i].title.bold() : week[i].title);
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Можно так.
const week = ['Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье'];
week.forEach((day, index) => {
  const element = document.createElement('p');
  if (index < 5) {
    element.textContent = day;
  } else {
    const wrapper = document.createElement('strong');
    wrapper.textContent = day;
    element.append(wrapper);
  }
  document.body.append(element);
});
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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