Почему не работает if в моем операторе if-then для моего цикла? - PullRequest
0 голосов
/ 23 октября 2018

Всегда достигается else, условие if ничего не делает.

Это часть большой функции.В HTML есть 2 входа: возраст и номер телефона.В сценарии numberArray состоит из переменных для этих двух значений (возраст и номер телефона).

Этот оператор for должен выводить вывод на идентификационную карту (в моем комментарии) следующим образом: "Возраст: 17".Условие else работает нормально и отображается как «Номер телефона: [numberinput]», поэтому я не понимаю, что не так с условием if.

function idCard() {
var firstName = document.getElementById('firstName').value;
var lastName = document.getElementById('lastName').value;
var address = document.getElementById('address').value;
var phoneNumber = parseInt(document.getElementById('phoneNumber').value);
var age = parseInt(document.getElementById('age').value);

document.getElementById("postFullName").innerHTML = firstName + lastName;
document.getElementById("postAddress").innerHTML = address;
document.getElementById('postAge').innerHTML = age;
document.getElementById('postPhoneNumber').innerHTML = phoneNumber;

var numberArray = [];
numberArray.push("age");
numberArray.push("phoneNumber");
for (var i = 0; i < 2; i++) {
    if (numberArray[i] <= 100){
        document.getElementById("postAge").innerHTML = "Age: " + age;
    }
    else {
        document.getElementById("postPhoneNumber").innerHTML = "Phone Number: " + phoneNumber;
    }

}

Ответы [ 3 ]

0 голосов
/ 23 октября 2018

Если я не правильно понял ваш вопрос, то Как насчет этого?Если я пропущу два числа , одно меньше 100 , а другое больше 100 .Так что в этом случае первый будет считаться возрастом, а второй - номером телефона.

Кстати, в своем коде вы использовали такой блок кода, который неправильный в этом контенте, потому что он 'будет производить ['age','phoneNumber']; не номер версии age, а phoneNumber

numberArray = [];
numberArray.push("age");
numberArray.push("phoneNumber");
console.log(numberArray); // will produce ['age','phoneNumber'];

var phoneNumber = 4567890; // I assume this is what you get as phoneNumber
var age = 15;              // I assume this is what you get as age
numberArray = [];
numberArray.push(age); // see change here without quotes
numberArray.push(phoneNumber); // see change here without quotes

for (var i = 0; i < 2; i++) {
  if (numberArray[i] <= 100) {
    document.getElementById("postAge").innerHTML = "Age: " + numberArray[i];
  } else {
    document.getElementById("postPhoneNumber").innerHTML = "Phone Number: " + numberArray[i];
  }

}
<div id="postAge"></div>
<div id="postPhoneNumber"></div>
0 голосов
/ 23 октября 2018

numberArray[i] в настоящее время является строкой "age" или "phoneNumber".Похоже на незначительную опечатку, я полагаю, вы хотели нажать переменные?

var numberArray = [age, phoneNumber];

// or if you must push
var numberArray = [];
numberArray.push(age);
numberArray.push(phoneNumber);
0 голосов
/ 23 октября 2018

Причина, по которой ваш оператор if не выполняется, состоит в том, что первые два элемента вашего numberArray больше 100 - я не могу сказать, потому что вы не поделились этой частью своего кода, но это то, что вынайду если опубликуешь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...