javascript, использующий оператор переменных if

#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 и т. Д