为什么我的'for'语句循环及其中的if语句不执行?

时间:2015-05-18 23:37:13

标签: javascript if-statement for-loop local-storage

我有一个函数有一个for语句重复,直到变量(i)等于localStorage.length并且在for循环中有一个if语句检查localStorage条目是否以#开头然后运行一个功能。当我调用此函数时,for循环中没有任何内容运行。

function refresh() {
  var i = 0;

  console.info("The LocalStorage Length is: " + localStorage.length);
  console.info("i is: " + i);
  console.log("i == localStorage.length is:" + i == localStorage.length);

  for (i = 0; i == localStorage.length; i++) {
    console.info("i is: " + i);

    current = localStorage.key(i);
    if (current.substr(0, 1) == "#") {
      noteArea.innerHTML = +createHtml(current.substr(1), localStorage.getItem(current)); //Adds the html to the page
      console.log(current.substr(1) + " - Note displayed."); //Logs the note title
    } else {
      console.log("No notes saved.");
    }

    console.info("i == localStorage.length is:" + i == localStorage.length);
  }
}


function createHtml(name, desc) {
  var html = "<div class = 'note'> <h4 class = 'note-title'>" + name + "</h5> <p class = 'note-desc'>" + desc + "</p> </div> <br/>";

  console.log(html);
  return html;
}

1 个答案:

答案 0 :(得分:1)

尝试更改您的for语句,使其显示为i < localStorage.length

循环永远不会执行的原因是因为循环中的语句必须是TRUE才能执行。循环执行时此语句仍为TRUE

您还可以删除循环中i的重新初始化,因为您已经有变量i