Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript在显示子字段的数组中循环_Javascript_Jquery - Fatal编程技术网

javascript在显示子字段的数组中循环

javascript在显示子字段的数组中循环,javascript,jquery,Javascript,Jquery,我正在尝试循环并获取下面数组中的位置名称 { "id":"100", "name":"the name", "places":[ { "id":"23", "name":"first place", "startDate":"2015-01-30 15:01:00", "endDate":"2015-01-30 17:01:00" }, { "id":

我正在尝试循环并获取下面数组中的位置名称

{
   "id":"100",
   "name":"the name",
   "places":[
      {
         "id":"23",
         "name":"first place",
         "startDate":"2015-01-30 15:01:00",
         "endDate":"2015-01-30 17:01:00"
      },

      {
         "id":"54",
         "name":"second place",
         "startDate":"2015-01-31 17:01:00",
         "endDate":"2015-02-01 17:01:00"

      },
      {
         "id":"400",
         "name":"third place",
         "startDate":"2015-02-01 17:01:00",
         "endDate":"2015-02-05 17:01:00"

      }

   ]

}
这就是我所做的:

for (var i = 0; i < mainData.length; i++) {

     var obj = mainData.places[i];

     console.log(obj.places[i].name);
}
for(变量i=0;i
上面的代码显示为未定义,因此代码中有错误


如何让console.log显示所有地名?

请查看Nina Scholz的答案,因为这确实有助于您理解错误

这是另一种方法(使用
map

var-arr={
“id”:“100”,
“名称”:“名称”,
“地点”:[
{
“id”:“23”,
“姓名”:“第一名”,
“开始日期”:“2015-01-30 15:01:00”,
“结束日期”:“2015-01-30 17:01:00”
},
{
“id”:“54”,
“姓名”:“第二名”,
“开始日期”:“2015-01-31 17:01:00”,
“结束日期”:“2015-02-01 17:01:00”
},
{
“id”:“400”,
“姓名”:“第三名”,
“起始日期”:“2015-02-01 17:01:00”,
“结束日期”:“2015-02-05 17:01:00”
}
]
}
var places=arr.places.map(函数(e){
返回e.name;
});

console.log(places)
在您的代码中
obj
是对内部对象的引用,因此获取它的name属性。尽管您需要检查
palces
属性(保存数组)的长度

for(变量i=0;i
var mainData={
“id”:“100”,
“名称”:“名称”,
“地点”:[{
“id”:“23”,
“姓名”:“第一名”,
“开始日期”:“2015-01-30 15:01:00”,
“结束日期”:“2015-01-30 17:01:00”
}, {
“id”:“54”,
“姓名”:“第二名”,
“开始日期”:“2015-01-31 17:01:00”,
“结束日期”:“2015-02-01 17:01:00”
}, {
“id”:“400”,
“姓名”:“第三名”,
“起始日期”:“2015-02-01 17:01:00”,
“结束日期”:“2015-02-05 17:01:00”
}]
};
对于(变量i=0;i}
您需要
位置的长度
以及通过
obj
访问
名称的权限

var mainData={“id”:“100”,“name”:“name”:“name”,“places”:[{“id”:“23”,“name”:“first place”,“startDate”:“2015-01-30 15:01:00”,“endDate”:“2015-01-30 17:01:00”,“endDate”:“2015-01-30 17:01:00”,“endDate”:“2015-02-01 17:01:00”,“id”:“400”,“name”:“third place”,“startDate”:“2015-02-01 17:01:00”,“结束日期”:“2015-02-05 17:01:00”}],
obj;
对于(变量i=0;i}
您在
mainData
中循环,但使用
mainData.places
上的索引,然后尝试记录
mainData.places[i].places[i].name
console.log(obj.name);
obj是数组元素
的引用(var i=0;i
(obj.name);
你试过了吗?
console.log(obj.name)
如果
mainData
是显示的根对象,这将不起作用-你需要循环
mainData.places
并且你正在进行与OP相同的错误缩放和计数
mainData.length
然后使用
mainData.places[i]/code>
for (var i = 0; i < mainData.palces.length; i++) {
    //----------------------^^^^^^^^-------------
    var obj = mainData.places[i];
    console.log(obj.name);
    //------------^^^^^^^^--------
}