#javascript #for-loop #if-statement
#javascript #для цикла #if-оператор
Вопрос:
Фактический код:https://imgur.com/a/RmVhdpI Фактический результат: https://imgur.com/a/z5oaSsb
У меня есть 5 переменных: va1, va2, va3, va4 и va5, которые могут иметь значения > 0. Я хочу вычислить другие переменные, которые отсутствуют. Все они правильно работают из поля номера html и обновляются вручную, если я проверяю и обновляю один за другим.
for (i=1; i <= 5; i ) {
alert('va' i); //these alert write va1 to va5 correct
}
if('va' i >0) { //but thia doesn't work, even if I define variable x='va' i;
alert("bigger"); // even if statement is true ex va1 > 0 the if statement won't do it
}
//if I do it by hand:
if(va1 > 0) {
alert("Bigger"); //these one works but not i want to write 42 variables by hand
}
Итак, есть идеи?
Комментарии:
1. Я ничего не понимаю.
2. мне нужно, чтобы if автоматически проверял, что значения от va1 до va5 больше 0 внутри цикла for, внутри оператора if значение должно быть таким, которое вставляется циклом for как «va» i (приращение), я попробовал 2 способа работы, но они отображаются только в консоли справа, но не могут использовать его в операторе if, кроме того, утверждение верно
3. @CrutchMaster согласен. Этот вопрос полностью разрушает мой разум…
4. @Simaomp пожалуйста, добавьте HTML в свой пример и… Чего вы пытаетесь достичь? Какова конечная цель?
5. для чего вам нужна html-часть, это нормально. проблема в javascript, я говорю, что я получаю правильное значение, и если я делаю if(va1 > 0), это верно, но если я делаю if («va» ввод-вывод), это не работает, мне нужно, чтобы va1 автоматически добавлялся циклом for <td><имя ввода =»vu1″ тип=»number» id = «vu1″ style =»width: 40px;» /></td> <td><имя ввода =»va1″ тип=»number» id =» va1″ style=»ширина: 70 пикселей;» /></td>
Ответ №1:
Если вы хотите проверить значение по значению и что-то сделать, то:
const arrOfVa = []
for (let i=1;i<=5;i ){
arrOfVa.push(document.getElementById('va' i).value);
}
arrOfVa.forEach(va => {
if (va > 0){
// your code here
}
});
Если вы хотите проверить, что каждое значение больше нуля, то:
const arrOfVa = []
for (let i=1;i<=5;i ){
arrOfVa.push(document.getElementById('va' i).value);
}
if (arrOfVa.every(va => va > 0)){
// your code here
}
Комментарии:
1. спасибо за попытку помочь. Появляется ошибка. Неперехваченная ошибка ссылки: arrOfVa не определена в disaboracoes (fgcalc.php:201) в HTMLButtonElement.onclick (fgcalc.php:125)
2. появляется та же ошибка, не знаю почему.
if(va1>0){ alert("Bigger"); } else{ } for (let i=1;i<=5;i ){ arrOfVa.push(document.getElementById('va' i).value); } if (arrOfVa.every(va => va > 0)){ alert("Bigger than 0 "); }
3. пропущена инициализация массива, отредактирована для его добавления
4. ошибки сейчас нет, но та же проблема. оператор правильный, но не выполняйте его
5. пожалуйста, поставьте console.log (arrOfVa) после for и дайте мне знать, что он выводит
Ответ №2:
if (document.getElementById(va i).value > 0) {
Комментарии:
1. будет работать, но в части va должно быть «va» 1 «va» 2 и т. Д