Javascript: динамическое отображение списка [Начинающий] - PullRequest
2 голосов
/ 05 ноября 2019

Я строю трекер подсчета слов и хотел бы показать, сколько слов нужно в день, чтобы достичь цели в течение 30 дней. Например, если кто-то вводит 50 000 в качестве своей цели, он должен будет выполнить 1667 слов в день. Я хочу создать элемент списка, который сказал бы:

Day 1: 1667
Day 2: 3334
Day 3....etc.

Мой текущий план состоял в том, чтобы создать массив, который содержал элементы списка, но сценарий, по-видимому, приводил к полной поломке сайта! Я не уверен, что здесь происходит.

let wordsPerDay = 0;

function wordsPerDayF(x) {
  wordsPerDay = x / 30;
  wordsPerDay = Math.round(wordsPerDay)
  document.getElementById('wordsNeeded').innerHTML = wordsPerDay.toString();
};
// Above functions finds the word count needed per day

let milestones = []
let finalMilestones = [];

function createMilestones() {
  let newWordCount = wordsPerDay;
  for (let w = 1; w <= 30; w++) {
    milestones.push(newWordCount)
    newWordCount += newWordCount;
  };
  let count = 1;
  for (let z = 0; z = milestones.length; z++) {
    finalMilestones.push("Day " + count + ": " + milestones[z]);
    count++;
  };
};

function final() {
  createMilestones();
  let str = '<ul>'
  finalMilestones.forEach(function(item) {
    str += '<li>' + item + '</li>';
  });
  str += '</ul>';
  document.getElementById("wordsNeeded").innerHTML = str;
};
final();
<div id="wordsNeeded"></div>

Я новичок в кодировании, поэтому прошу прощения, если этот код груб или труден для понимания.

1 Ответ

2 голосов
/ 05 ноября 2019

z = milestones.length должно быть z < milestones.length.

Вы никогда не звоните wordsPerDayF().

newWordCount += newWordCount удваивает количество слов каждый день, но это не то, что вы действительно хотите. Вы просто хотите добавить newWordCount к итогу. Вы также можете использовать w * newWordCount, чтобы получить сумму за каждый день.

let wordsPerDay = 0;

function wordsPerDayF(x) {
  wordsPerDay = x / 30;
  wordsPerDay = Math.round(wordsPerDay)
  document.getElementById('wordsNeeded').innerHTML = wordsPerDay.toString();
};
// Above functions finds the word count needed per day

let milestones = []
let finalMilestones = [];

function createMilestones() {
  let newWordCount = wordsPerDay;
  for (let w = 1; w <= 30; w++) {
    milestones.push(newWordCount * w)
  };
  let count = 1;
  for (let z = 0; z < milestones.length; z++) {
    finalMilestones.push("Day " + count + ": " + milestones[z]);
    count++;
  };
};

function final() {
  wordsPerDayF(50000);
  createMilestones();
  let str = '<ul>'
  finalMilestones.forEach(function(item) {
    str += '<li>' + item + '</li>';
  });
  str += '</ul>';
  document.getElementById("wordsNeeded").innerHTML = str;
};
final();
<div id="wordsNeeded"></div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...