Javascript:循环遍历数组

Javascript: loop through array

本文关键字:数组 遍历 循环 Javascript      更新时间:2023-09-26

这让我抓狂。我只是想打印出一个数组,但它不起作用。我错过了什么?results变量返回"undefined",这意味着我的for循环不能正常工作。其他一切都正常工作,我的console.log正确显示了添加到数组中的字段。

// The list of accounts array.
var accountsArray = [];
function addAccount() {
  // Take fields and put user data into varables.
  var accountName = document.getElementById('accountName').value;
  var accountBalance = document.getElementById('accountBalance').value;
  var accountType = document.getElementById("accountType");
  var accountTypeSelected = accountType.options[accountType.selectedIndex].text;
  var accountCurrency = document.getElementById("accountCurrency");
  var accountCurrencySelected = accountCurrency.options[accountCurrency.selectedIndex].text;
  // Put these variables into the array.
  accountsArray.push(accountName);
  accountsArray.push(accountBalance);
  accountsArray.push(accountTypeSelected);
  accountsArray.push(accountCurrencySelected);
  // Items added to the array, logged.
  console.log('user added: ' + accountsArray);
}
function accountsListHtml() {
  var results;
  // Loop through the array
  for (var i = 0; i < accountsArray.length; i++) {
    results = accountsArray[i];
  }
  document.getElementById('accountsList').innerHTML = results;
}

这是所有文件的链接。这是一个使用Framework7的iOS网络应用程序。Balance Pro

您正在body.onload中调用accountsListHtml()。此时accountsArray为空。在你链接的页面上,我找不到任何其他拨打accountsListHtml()的可能性。

在函数addAccount()中添加一行,它就会工作:

function addAccount() {
    /* vour code */
    console.log('user added: ' + accountsArray);
    accountsListHtml(); // add this line
}

尝试将results = accountsArray[i];更改为results += accountsArray[i];

更新并用一个空字符串初始化results,例如:)

for (var i = 0; i < accountsArray.length; i++) { results = accountsArray[i]; }

for循环中的语句,即results = accountsArray[i];,每次循环运行都会覆盖变量results。您可以将语句更改为:

results += accountsArray[i].toString();

并将CCD_ 13初始化为空字符串。

以下内容适用于我:http://jsfiddle.net/95ztrmk3/13/

HTML:

<div id="accountsList"></div>

JS:

// The list of accounts array.
var accountsArray = [];
addAccount();
accountsListHtml();
function addAccount() {
    // Take fields and put user data into varables.
    var accountName = "John Doe";
    var accountBalance = "500.00";
    var accountTypeSelected = "Checking"
    var accountCurrencySelected = "USD";
    // Put these variables into the array.
    accountsArray.push(accountName);
    accountsArray.push(accountBalance);
    accountsArray.push(accountTypeSelected);
    accountsArray.push(accountCurrencySelected);
    // Items added to the array, logged.
    console.log('user added: ' + accountsArray);
}
function accountsListHtml() {
    var results = [];
    // Loop through the array
    for (var i = 0; i < accountsArray.length; i++) {
        results += accountsArray[i] + " ";
    }
    document.getElementById('accountsList').innerHTML = results;
    console.log(results);
}

假设输入没有格式错误或异常。我确保Javascript识别出results是一个空数组,而不是字符串或其他什么:var results = []