简体   繁体   English

Javascript数组循环变量未定义

[英]Javascript array loop variable undefined

I am having a bit of trouble with a loop that reads an array: 我在读取数组的循环时遇到了一些麻烦:

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

var arrayLength = myStringArray.length;

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

Where am I going wrong here? 我在哪里错了?

You need to iterate over the inner array( people property of the first element in the main array). 您需要遍历内部数组(主数组中第一个元素的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); } 


Although you can use Array#forEach method. 虽然您可以使用Array#forEach方法。

 var myStringArray = [{ "people": [{ "id": "123", "name": "name 1" }, { "id": "456", "name": "name 2" }] }]; myStringArray[0].people.forEach(function(v) { console.log(v.id); }); 

Access id from object stored in myStringArray[0]. 从myStringArray [0]中存储的对象访问id。

Here is the modified code:- 这是修改后的代码: -

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);

}

because your array only haw 1 item and its people. 因为你的数组只有1个项目和它的人。 and people don't has id property. 而且人们没有id属性。 the people contains two item that every one has their id. 人们包含两个项目,每个人都有自己的身份。

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM