#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>;» если вы хотите, чтобы задания отображались в разных строках