Obtener una lista de claves de matriz asociativas
Tengo una matriz asociativa en JavaScript:
var dictionary = {
"cats": [1,2,3,4,5],
"dogs": [6,7,8,9,10]
};
¿Cómo obtengo las claves de este diccionario? es decir, quiero
var keys = ["cats", "dogs"];
Solo para entender la terminología correcta, no existe una 'matriz asociativa' en JavaScript; técnicamente, esto es solo una object
y son las claves de objeto que queremos.
Aceptado
Prueba esto:
var keys = [];
for (var key in dictionary) {
if (dictionary.hasOwnProperty(key)) {
keys.push(key);
}
}
hasOwnProperty
es necesario porque es posible insertar claves en el objeto prototipo de dictionary
. Pero normalmente no desea que esas claves se incluyan en su lista.
Por ejemplo, si haces esto:
Object.prototype.c = 3;
var dictionary = {a: 1, b: 2};
y luego haz un for...in
bucle dictionary
, obtendrás a
y b
, pero también obtendrás c
.
for (var key in dictionary) {
// Do something with key
}
Es la declaración for...in .