2013-10-22 56 views
-3

我有這樣的對象:加入對象值?

"cuisines":{ 
    "2": "Burgers", 
    "7": "American", 
    "9": "Sandwiches", 
    "11": "Breakfast" 
} 

如何我可以改變它是這樣嗎?

Burgers, American, Sandwiches, Breakfast 

我正在使用角度。

+0

循環通過它來獲得這些價值? –

+0

什麼?將它轉換爲逗號分隔的字符串? – tymeJV

+0

http://docs.angularjs.org/api/angular.forEach這個文檔是無法讀取的答案。 – zishe

回答

0

我不爲什麼你想要它,但你可以試試這個,

var cuisine = { 
    "2": "Burgers", 
    "7": "American", 
    "9": "Sandwiches", 
    "11": "Breakfast" 
}; 
var data =[]; 
$.each(cuisine, function(key,val){ 
    data.push(val); 
}); 

console.log(data.join(',')); 

Demo

+0

謝謝,清晰明瞭的解決方案! – TSK

0

這似乎是一個很奇怪的問題,一個不真的有什麼關係角度本身。這似乎是一個純粹的JavaScript問題。

話雖這麼說,你應該能夠做到這一點:

var values = []; 
for(var key in cuisines){ 
    if(cuisines.hasOwnProperty(key)){ 
     values.push(cuisines[key]); 
    } 
} 
// values now looks like ["Burgers","American","Sandwiches","Breakfast"] 
1

爲屬性的對象的順序不能保證,你將不得不屬性進行排序,以讓他們的順序。把它們放在一個數組和排序,那麼你可以把一個數組名參加吧:

var o = { 
    "2": "Burgers", 
    "7": "American", 
    "9": "Sandwiches", 
    "11": "Breakfast" 
}; 

var arr = []; 
for (key in o) { 
    arr.push({ key: key, value: o[key] }); 
} 
arr.sort(function(x,y){ return x.key - y.key}); 
var names = []; 
for (var i = 0; i < arr.length; i++) { 
    names.push(arr[i].value); 
} 
var result = names.join(', '); 

演示:http://jsfiddle.net/Guffa/6HkNE/