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);
//------------^^^^^^^^--------
}