Javascript 返回json中数组的所有值
我的博客中有一个json,我想返回“tags”数组的所有值。因此,请参见下面的json示例:Javascript 返回json中数组的所有值,javascript,json,es5-shim,Javascript,Json,Es5 Shim,我的博客中有一个json,我想返回“tags”数组的所有值。因此,请参见下面的json示例: "posts":[ { "id":"89319077059", "title":"Post Title 01", "tags":[ "Politcs", "Science", ] }, { "id":"89318918989", "title":"Post Title 02", "tags"
"posts":[
{
"id":"89319077059",
"title":"Post Title 01",
"tags":[
"Politcs",
"Science",
]
},
{
"id":"89318918989",
"title":"Post Title 02",
"tags":[
"Football",
"Soccer",
]
},
]
因此,我需要获取循环中唯一的标记值,例如:
for (var i = 0; i < posts.length; i++) {
console.info("Here [i = 0] should be show the Politcs and Science and after [i = 1] show Football and Soccer");
}
有什么想法吗?如果我理解得很好,你可以用
- 循环:
var tags = []; for (var i = 0; i < posts.length; ++i) { tags.push(posts[i].tags); }
- ES5
+ES6:map
- 循环:
var tags = []; for (var i = 0; i < posts.length; ++i) { tags.push(posts[i].tags); }
- ES5
+ES6:map
- 如果我理解得很好,您可以使用
- 以下是代码:
var posts = [
{
"id":"89319077059",
"title":"Post Title 01",
"tags":[
"Politcs",
"Science",
]
},
{
"id":"89318918989",
"title":"Post Title 02",
"tags":[
"Football",
"Soccer",
]
}
];
var tags = [];
for (var index in posts) {
var tagsArray = posts[index].tags;
tags.push(tagsArray);
}
console.log(tags);
以下是代码:
var posts = [
{
"id":"89319077059",
"title":"Post Title 01",
"tags":[
"Politcs",
"Science",
]
},
{
"id":"89318918989",
"title":"Post Title 02",
"tags":[
"Football",
"Soccer",
]
}
];
var tags = [];
for (var index in posts) {
var tagsArray = posts[index].tags;
tags.push(tagsArray);
}
console.log(tags);
在for(posts[i].tags中的var标签)
循环中,标签
包含键,而不是值
因此,一个快速解决方案是:
for (var tag in posts[i].tags) {
tags.push(posts[i].tags[tag]);
}
但正如Oriol所指出的,for..in循环旨在遍历对象属性,而不是数组
只需像第一个循环一样使用for
循环。在for(posts[i].tags中的var标记)
循环中,标记包含键,而不是值
因此,一个快速解决方案是:
for (var tag in posts[i].tags) {
tags.push(posts[i].tags[tag]);
}
但正如Oriol所指出的,
for..in循环旨在遍历对象属性,而不是数组
只需像第一个循环一样使用循环即可。试试这个
var posts = {"posts":[
{
"id":"89319077059",
"title":"Post Title 01",
"tags":[
"Politcs",
"Science",
]
},
{
"id":"89318918989",
"title":"Post Title 02",
"tags":[
"Football",
"Soccer",
]
},
]};
var tags = [];
for(var i=0;i<posts.posts.length;i++) {
for(var j=0;j<posts.posts[i].tags.length;j++) {
tags.push(posts.posts[i].tags[j]);
}
}
console.log(tags);
var posts={“posts”:[
{
“id”:“89319077059”,
“标题”:“帖子标题01”,
“标签”:[
“政治学”,
“科学”,
]
},
{
“id”:“89318918989”,
“职务”:“职务02”,
“标签”:[
“足球”,
“足球”,
]
},
]};
var标签=[];
对于(var i=0;i试试这个
var posts = {"posts":[
{
"id":"89319077059",
"title":"Post Title 01",
"tags":[
"Politcs",
"Science",
]
},
{
"id":"89318918989",
"title":"Post Title 02",
"tags":[
"Football",
"Soccer",
]
},
]};
var tags = [];
for(var i=0;i<posts.posts.length;i++) {
for(var j=0;j<posts.posts[i].tags.length;j++) {
tags.push(posts.posts[i].tags[j]);
}
}
console.log(tags);
var posts={“posts”:[
{
“id”:“89319077059”,
“标题”:“帖子标题01”,
“标签”:[
“政治学”,
“科学”,
]
},
{
“id”:“89318918989”,
“职务”:“职务02”,
“标签”:[
“足球”,
“足球”,
]
},
]};
var标签=[];
对于(var i=0;i您可以尝试使用for循环:
for (var i = 0; i < posts.length; i++) {
for(var j = 0; j < posts[i].tags.length; j++) {
console.log(posts[i].tags[j]);
}
}
for(var i=0;i
干杯。您可以尝试使用for循环:
for (var i = 0; i < posts.length; i++) {
for(var j = 0; j < posts[i].tags.length; j++) {
console.log(posts[i].tags[j]);
}
}
for(var i=0;i
干杯。注意for…in
循环被认为是迭代数组的糟糕方式。它们将迭代所有可枚举属性,包括非数字属性和来自原型的属性。如果没有属性,则不会迭代0和lenght-1之间的整数,例如[0,,,,,,,5]
我不知道!为什么,你能解释一下吗?谢谢@OzerGul,但我会使用maps和Oriol技巧。注意,
中的循环被认为是迭代数组的糟糕方法。它们会迭代所有可枚举属性,包括非数值属性和来自原型的属性。如果没有属性,则不会迭代0和lenght-1之间的整数erty,例如,[0,,,,,5]
我不知道!为什么,你能解释一下吗?谢谢@OzerGul,但我会使用地图,Oriol提示。谢谢@Rashmin Javiya谢谢@Rashmin Javiya