Как записать несколько значений индекса вместо одного

#javascript #html

#javascript #HTML

Вопрос:

Моя функция должна вызывать несколько значений индекса на основе ввода пользователей (1-5) в зависимости от должностных обязанностей, которые они хотят видеть, а затем вызывать из массива значения индекса, поэтому, если пользователь вводит 3, необходимо записать значения индекса 0,1,2. В настоящее время он записывает только то, что связано с вводом, а не все ниже этого ввода. Это то, что у меня есть до сих пор:

 function jobduties() {
    var x = document.getElementById("input").value;
    var y = x-1;
    var duties = ["Sales", "Customer Service", "Management", "Driving", "Cleaning"];
    var z = " ";

    while(x > y){
       z  = z   duties[y];
       y  ;
       document.getElementById("print").innerHTML= z;
   }
}
  

Комментарии:

1. Как насчет var y = 1 ?

2. y = 1 не сработало, я попробую другой код

3. Примечание: z = z duties[y]; приведет к дублированию

4. Кроме того, в вашем коде ваши обязанности будут пересекаться друг с другом без пробелов между ними

Ответ №1:

Проблема в том, что вы настраиваете y = x-1 , поэтому, если пользователь вводит 3 (x = 3), y будет 2 (x-1)… В то время как вы начинаете с y = 2, вы добавляете это к z, а затем увеличиваете y, поэтому вы оцениваете только y = 2, поскольку следующий — y = 3, и это не удовлетворяет вашему условию (x> y)

Попробуйте эти изменения… изменить var y = x - 1; на var y = 0;

А также удалите , где вы редактируете переменную z.

Редактировать: Кстати, я просто отвечаю, следуя выбранному вами методу, но я настоятельно рекомендую вам вместо этого использовать цикл FOR, что намного проще..

Комментарии:

1. вы имеете в виду изменение = или удаление z справа от = … обратите внимание, что ни одно из них не изменит тот факт, что в тексте для обязанностей не будет пробелов

2. Да, я согласен, но это для задания, которое у меня есть, где я должен использовать цикл while, спасибо

3. Наконец-то сработало, есть идеи, как его отформатировать, чтобы он не выглядел как один длинный фрагмент текста?

4. во-первых, var z = ''; в начале нет пробела, а затем z = duties[y] ' ';

5. Измените всю строку z внутри while на эту: «z = обязанности [y] «<br>;» если вы хотите, чтобы задания отображались в разных строках