访问数组的索引

时间:2013-02-20 19:40:59

标签: javascript arrays

这是我的代码:

function Todo(id, task, who, dueDate) {
    this.id = id;
    this.task = task;
    this.who = who;
    this.dueDate = dueDate;
    this.done = false;
}

var todos = new Array();

window.onload = init;

function init() {
    var submitButton = document.getElementById("submit");
    submitButton.onclick = getFormData;
    var searchButton = document.getElementById("button");
    searchButton.onclick = search;
}

//function creates objects    

function search() {
      for (var i = 0; i < todos.length; i++) {
         var todoObj = todos[i].who;
         console.log(todoObj[0]);
        }
    }

我创建的两个对象的值为“jane”和“scott”。在控制台中返回的内容首先是“j”,然后是“s”。所以它正在访问两个对象中的第一个字母。当我输入console.log(todoObj);它返回“jane”和“scott”。我需要能够单独访问每个名称。我怎样才能做到这一点?

5 个答案:

答案 0 :(得分:2)

todos = [ { who:"jane", ...}, {...} ]
todos[i] = { who:"jane", ...}
todos[i].who = "jane"
todos[i].who[0] = 'j'

答案 1 :(得分:2)

摆脱指数。你已经拥有了这个价值。

 console.log(todoObj);

答案 2 :(得分:0)

您正在访问第一个console.log(todoObj[0]),因此会出现“for”s“

答案 3 :(得分:0)

当你做

var todoObj = todos[i].who;

将当前对象的who字段放入todoObj。因此,todoObj [1]等于who数组的第一个块。 如果你想处理整个对象:

var todoObj = todos[i]

并使用

获取名称
 todoObj.who

答案 4 :(得分:0)

var todoObj = todos[i].who; // returns the string jane or scott depending on the index
console.log(todoObj[0]); // will print out the first character of the string assigned in todoObj

你需要做的是

var todoObj = todos[i]; // returns the Todo object
console.log(todoObj.who);