Estoy usando este método para hacer 'hashmaps' artificiales en javascript. Todo lo que busco son pares clave | valor, el tiempo de ejecución real no es importante. El siguiente método funciona bien.
¿Hay alguna otra forma de recorrer esto?
for (var i in a_hashMap[i]) {
console.log('Key is: ' + i + '. Value is: ' + a_hashMap[i]);
}
Me encuentro con un problema en el que esto genera un montón de claves indefinidas después de la primera clave, cuando la matriz solo contiene una entrada. Tengo la sensación de que es porque el código está dentro de un bucle que usa i, aunque cuando sigo en la depuración no debería estar sucediendo. Tampoco puedo cambiar i ya que el bucle for parece no entender la var reemplazada en absoluto.
Alguien alguna idea?
7 respuestas
for (var i in a_hashmap[i])
No es correcto. Debería ser
for (var i in a_hashmap)
Lo que significa "recorrer las propiedades de a_hashmap
, asignando cada nombre de propiedad a su vez a i
"
Intente esto para imprimir la consola correctamente ...
for(var i in a_hashMap) {
if (a_hashMap.hasOwnProperty(i)) {
console.log('Key is: ' + i + '. Value is: ' + a_hashMap[i]);
}
}
Iterar a través de un mapa en Javascript vainilla es simple.
var map = {...};//your map defined here
for(var index in map)
{
var mapKey = index;//This is the map's key.
for(i = 0 ; i < map[mapKey].length ; i++)
{
var mapKeyVal = map[mapKey];//This is the value part for the map's key.
}
}
¿Quieres decir
for (var i in a_hashmap) { // Or `let` if you're a language pedant :-)
...
}
i
no está definido cuando se configura el bucle for.
Esta es una publicación antigua, pero una forma en la que puedo pensar es
const someMap = { a: 1, b: 2, c: 3 };
Object.keys(someMap)
.map(key => 'key is ' + key + ' value is ' + someMap[key]);
¿Debería usarse esta forma de iteración? ¿Hay algún problema con este enfoque?
Puedes usar la función JQuery
$.each( hashMap, function(index,value){
console.log("Index = " + index + " value = " + value);
})
for (var i = 0, keys = Object.keys(a_hashmap), ii = keys.length; i < ii; i++) {
console.log('key : ' + keys[i] + ' val : ' + a_hashmap[keys[i]]);
}
Preguntas relacionadas
Preguntas vinculadas
Nuevas preguntas
javascript
Para preguntas sobre la programación en ECMAScript (JavaScript / JS) y sus diversos dialectos / implementaciones (excepto ActionScript). Incluya todas las etiquetas relevantes en su pregunta; por ejemplo, [node.js], [jquery], [json], etc.