对象中的ForEach循环JSON AngularJS对象

时间:2016-02-25 14:00:32

标签: angularjs json

我是AngularJS的新手,我正在努力学习如何深入了解对象内部有对象甚至数组的JSON对象。这是我正在使用的“简化”版本,我希望它能帮助我获得基本的理解,所以我可以自己完成其余的工作。

JSON

* styles top blue navigation bar */
.topBarSymbols{
  position:relative;
  z-index:2;
  margin:0 auto;
  top:0px;
  width:100%;
  height:12%;
  background-color:#1735E3;
  color:#ffffff;
}
/* styles help icon on top right */
.nav #helpSymbols img {
  display: block;
  left:78%;
  height:9%;
  top:2%;
}
/* styles position of logo */
.nav #logoSymbols img {
  display: block;
  height: 9%;
  left:5%;
  top:2%;
}
/* styles position of the title of the page represented as an image */
.nav #titleSymbols img {
  display: block;
  left:140px;
  height: 9%;
  top:2%;
  left:42%;
}

 values =      {
          "profile": {
            "fields": {
              "number-of-fields": "700",
              "inside": [
                "test1",
                "test2"
              ],
              "type": "test",
              "values": "450"
            }
          },
          "id": "12312312333645"
        }

http://jsfiddle.net/ygahqdge/184/

3 个答案:

答案 0 :(得分:1)

基础知识

使用点.遍历对象属性,使用索引引用遍历数组索引[0|1|2|etc.]

你的对象怎么样?

var yoObject = {
    "profile": {
        "fields": {
            "number-of-fields": "700",
            "inside": [
                "test1",
                "test2"
            ],
            "type": "test",
            "values": "450"
        }
    },
    "id": "12312312333645"
}

获取内部值:

// object   object  object array
   yoObject.profile.fields.inside.map(console.log, console) // ["test1", "test2"]

获取ID:

// object   property
   yoObject.id // "12312312333645"

获取字段对象的所有属性:

Object.keys(yoObject.profile.fields) // ['number-of-fields', 'inside', 'type', 'values']

从上面获取所有属性值:

fields = yoObject.profile.fields
Object.keys(fields).map(key => console.log(fields[key])) // ["700", ["test1", "test2"], "test", "450"] // Note: Order isn't guaranteed

玩弄东西吧。将对象抛出控制台并开始手动遍历它。然后尝试循环。

玩得开心!

注意:我没有测试过! :P

  

这是关于在JSON中深入循环的正确方法的问题   对象 - @ user2402107

没有正确的方式。有时您需要完全动态,有时您可以将路径硬编码为嵌套属性和值。

小提琴-,扭

根据需要多次嵌套:

angular.forEach(values, (value, key) => {
  console.log("Value for", key, ":", value);
  angular.forEach(value, (value, key) => {
    console.log("Value for", key, ":", value);
    angular.forEach(value, (value, key) => {
      console.log("Value for", key, ":", value);
    })
  })
});

答案 1 :(得分:0)

您可以将整个对象记录到控制台。通过使用F12工具,您可以在浏览器中浏览对象。

console.log(objectName);

答案 2 :(得分:0)

angular.forEach适用于数组。假设你有一个对象数组,这个

var values = [{
  "profile": {
    "fields": {
      "number-of-fields": "700",
      "interpertation": [
        "whenever this is ready"
      ],
      "type": "test",
      "values": "450"
    }
  },
  "id": "12312312333645"
},
{
  "profile": {
    "fields": {
      "number-of-fields": "700",
      "interpertation": [
        "whenever this is ready"
      ],
      "type": "test",
      "values": "450"
    }
  },
  "id": "12312312333645"
}]

您可以像这样探索每个对象及其属性

angular.forEach(values, function(value, key) {
  console.log(value.profile.fields.values);



});

您可以使用.表示法来访问属性