2016-02-25 138 views
0

我是AngularJS的新手,我正試圖學習如何更深入地瞭解一個JSON對象,該對象內部有對象,有時甚至是數組。這是我正在使用的「簡化」版本,我希望它能幫助我獲得基本的理解,以便我可以自己完成其餘的工作。對於ForEach循環JSON AngularJS對象在對象

JSON

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

代碼

angular.forEach(values, function(value, key) { 
    console.log(key + ': ' + value); 
// I know I need to loop inside of each object I beleieve 


}); 

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

+0

是'values.'一個錯字? –

+0

您可以將整個對象記錄到控制檯。如果您使用f12工具,則可以瀏覽瀏覽器中的對象。 – omegasbk

+0

values是一個對象..angular.foreEact對數組或對象數組起作用。 –

回答

1

基礎知識

帶點的遍歷對象屬性.,遍歷數組y索引與索引參考,[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); 
    }) 
    }) 
}); 
+0

Adrian這是一個很好的迴應,但它並沒有真正展現給我。你可以編輯我的jsfiddle以顯示... – user2402107

+0

http://jsfiddle.net/ygahqdge/186/ – user2402107

+0

增加了更多的代碼給答案。你儘可能深的嵌入你需要的東西。你想要去多深?! –

0

您可以登錄整個對象安慰。通過使用F12工具,您可以瀏覽瀏覽器中的對象。

console.log(objectName); 
+0

我知道我已經添加了一個plunker來展示我的意思,這是一個關於在正確的方式下循環深入JSON對象的問題 – user2402107

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); 



}); 

可以使用.標記訪問propertes