我有一个像这样的JSON对象:
var list = {'name1' : {'element1': 'value1'}, 'name2' : {'element1': 'value2'});
如何提取所有nameX字符串值?
例如,假设我想将它们串联在一个字符串中,例如:“name1 name2”
在任何解决方案中使用jQuery都很好。请指教......
答案 0 :(得分:11)
要获取对象的键,ES5中有Object.keys
,它返回一个数组:
Object.keys(list).join(" "); // "name1 name2"
如果您想过滤密钥,可以使用.filter
:
Object.keys(list).filter(function(key) {
return key.indexOf("name") === 0; // filter keys that start with "name"
}).join(" "); // "name1 name2"
答案 1 :(得分:4)
对于不支持keys
的旧浏览器:
var list_keys = []
for (var n in list) {
list_keys.push(n)
}
var names = list_keys.join(' ');
答案 2 :(得分:3)
var names = Object.keys(list);
答案 3 :(得分:2)
既然你说基于jQuery的解决方案没问题,可以用jQuery做一个不需要ES5垫片的方法:
var itemString = $.map(list, function(item, key) {
return(key);
}).join(" ");
此处的演示演示:http://jsfiddle.net/jfriend00/a2AMH/
jQuery.map()
遍历对象的属性或数组的项,并根据我们传递给它的自定义函数构建一个新数组。然后我们将该数组的结果加入到字符串中。您可以阅读jQuery.map()
here。