2014-08-29 29 views
-2
[ 
    { 
     "item": "1", 
     "values": [{"name": "A"}] 
    }, 
    { 
     "item": "2", 
     "values": [{"name": "B"}] 
    }, 
    { 
     "item": "3", 
     "values": [{"name": "A"}] 
    } 
] 

和所期望的結果是一組狀陣列:["A", "B"]從名稱字段如何創建從JSON的東西「深」使用Javascript

什麼的了「的Javascript實踐」抓起?謝謝。

+1

你有什麼試過?基本的for循環會遍歷對象,以便您可以獲取所需的值。究竟是什麼問題? – scrappedcola 2014-08-29 18:32:07

+0

[訪問/進程(嵌套)對象,數組或JSON]的可能的重複(http://stackoverflow.com/questions/11922383/access-process-nested-objects-arrays-or-json) – 2014-08-29 18:33:27

+0

嘿,如果你認爲這很深...只是你等待brah。 – 2014-08-29 18:34:05

回答

0

首先,您的嵌套數組定義中有語法錯誤。

"values": ["name": "A"] // this is not valid javascript 

...我猜你想要更像這樣的東西?

x=[ 
    { 
     "item": "1", 
     "values": {"name": "A"} 
    }, 
    { 
     "item": "2", 
     "values": {"name": "B"} 
    }, 
    { 
     "item": "3", 
     "values": {"name": "A"} 
    } 
] 

其次,你真正的問題 - 我會使用下劃線JS或Lodash庫來幫助。特別是他們的地圖功能。因此,假設您使用的是我爲x定義的對象,並使用下劃線JS ...

.map(x, function(y){return y.values.name}) 
["A", "B", "A"] 

希望有所幫助。

+1

是不是「A」在這裏重複? – NSF 2014-08-29 19:14:35

+0

是的,因爲「A」有兩個value.name屬性。如果你想過濾它們並且只有唯一的值,那麼還有另一個underscore.js函數(巧合的是_.uniq()) – 2014-08-30 01:43:53

相關問題