2012-03-10 18 views

Respuesta

11

para obtener las claves de un objeto, hay Object.keys en ES5, que devuelve una matriz:

Object.keys(list).join(" "); // "name1 name2" 

Si desea filtrar las teclas, puede utilizar .filter:

Object.keys(list).filter(function(key) { 
    return key.indexOf("name") === 0; // filter keys that start with "name" 
}).join(" "); // "name1 name2" 
+1

Una nota, sin embargo, el método 'keys' se introdujo en 1.8.5+. Si necesita compatibilidad con versiones anteriores, es posible que prefiera usar una alternativa como la calificación '_.keys' de underscore.js (la respuesta de @mVChr ofrece otra) – rjz

3
var names = Object.keys(list); 
4

Para los navegadores antiguos que no soportan keys:

var list_keys = [] 
for (var n in list) { 
    list_keys.push(n) 
} 
var names = list_keys.join(' '); 
+0

Debe incluir una prueba hasOwnProperty:' if (list.hasOwnProperty (n)) '. – RobG

2

Dado que usted ha dicho una solución basada en jQuery estaría bien, aquí hay una manera de hacerlo con jQuery que no requiere una cuña ES5:

var itemString = $.map(list, function(item, key) { 
    return(key); 
}).join(" "); 

trabajo de demostración aquí: http://jsfiddle.net/jfriend00/a2AMH/

jQuery.map() itera sobre las propiedades de un objeto o los elementos de una matriz y construye una nueva matriz en función de la función personalizada que le pasamos. Luego, simplemente unimos los resultados de esa matriz en una cadena. Puede leer sobre jQuery.map()here.

Cuestiones relacionadas