2013-10-22 29 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/