javascript - 如何获取对象名称或关联数组索引名称?

时间:2012-03-10 22:46:56

标签: javascript jquery

我有一个像这样的JSON对象:

var list = {'name1' : {'element1': 'value1'}, 'name2' : {'element1': 'value2'});

如何提取所有nameX字符串值?

例如,假设我想将它们串联在一个字符串中,例如:“name1 name2”

在任何解决方案中使用jQuery都很好。请指教......

4 个答案:

答案 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