Javascript数组循环变量未定义

时间:2016-09-21 09:12:38

标签: javascript

我在读取数组的循环时遇到了一些麻烦:

$.jqplot.preDrawHooks.push(function () {
    this.legend.show = true;
});

我在哪里错了?

3 个答案:

答案 0 :(得分:3)

您需要遍历主数组中第一个元素的内部数组(people属性)。



var myStringArray = [{
  "people": [{
    "id": "123",
    "name": "name 1"
  }, {
    "id": "456",
    "name": "name 2"
  }]
}];
var arrayLength = myStringArray[0].people.length;

for (var i = 0; i < arrayLength; i++) {
  console.log(myStringArray[0].people[i].id);
}
&#13;
&#13;
&#13;

虽然您可以使用 Array#forEach 方法。

&#13;
&#13;
var myStringArray = [{
  "people": [{
    "id": "123",
    "name": "name 1"
  }, {
    "id": "456",
    "name": "name 2"
  }]
}];

myStringArray[0].people.forEach(function(v) {
  console.log(v.id);
});
&#13;
&#13;
&#13;

答案 1 :(得分:0)

从存储在myStringArray [0]中的对象访问id。

以下是修改后的代码: -

var myStringArray = [
    {
        "people":[
            {"id":"123","name":"name 1"},
            {"id":"456","name":"name 2"}
        ]
    }
];

var array = myStringArray[0].people,
    arrayLength = array.length;
for (var i = 0; i < arrayLength; i++) {

    console.log(array[i].id);

}

答案 2 :(得分:0)

因为你的数组只有1个项目及其人员。 而且人们没有id属性。人们包含两个项目,每个人都有自己的身份。

for (var i = 0; i < arrayLength; i++) {
  for(var j = 0; j < myStringArray[i].length; j++)
  {
    console.log(myStringArray[i][j].id);
  } 
}