TyperError:无法读取未定义的属性“长度”---但是它被定义了吗?

时间:2017-02-18 03:59:48

标签: arrays typeerror

未捕获的TypeError:无法读取未定义的属性“length”     在buildTable(test.js:14)     在test.js:2

我不完全确定这里发生了什么。我收到这个错误,似乎它说我的数组是未定义的,但是它被定义了吗?

编辑:它指的是循环中的代码。

var table = document.getElementById("tableBody");
buildTable();

var toDoArray = [];


function buildTable(){

var retrievedTaskObject = localStorage.getItem("task");
var parsedObject = JSON.parse(retrievedTaskObject);
var addTheTaskName = parsedObject.taskName;
var addTheTaskDate = parsedObject.taskDate;

for(i=0; i < toDoArray.length; i++){
  addTaskToTable(parsedObject[i]);
}



}

function addTaskToTable(obj){
  var row = table.insertRow(0);
  var cellName = row.insertCell(0);
  var cellDate = row.insertCell(1);
  var cellId = row.insertCell(2);
  var cellCheck = row.insertCell(3);
  cellName.innerHTML= obj.name;
  cellDate.innerHTML= obj.date;
  var checkStuff = "<input type='checkbox'>";
  cellCheck.innerHTML = checkStuff;

}

function submitForm(name,date) {
    var addTaskName = document.getElementById("taskName").value;
    var addTaskDate = document.getElementById("dateTask").value;
    var taskSomething = getTaskObj(addTaskName,addTaskDate);
      toDoArray.push(taskSomething);
      addTaskToTable(taskSomething);
      var storedArray = JSON.stringify(toDoArray);
      localStorage.setItem("task",storedArray);
};

function getTaskObj(taskName,taskData){
var taskObject = {
        name: taskName,
        date: taskData,
      };
 return taskObject;
}

1 个答案:

答案 0 :(得分:0)

在调用builtTable函数之前保留它

var toDoArray = [];

var toDoArray = [];
buildTable();

你在定义之前调用函数并使用数组。