Javascript 返回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"

我的博客中有一个json,我想返回“tags”数组的所有值。因此,请参见下面的json示例:

"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
    map
    +ES6:


    • 如果我理解得很好,您可以使用

      • 循环:

        var tags = [];
        for (var i = 0; i < posts.length; ++i) {
             tags.push(posts[i].tags);
        }
        
      • ES5
        map
        +ES6:

        • 以下是代码:

          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