J'utilise this une méthode pour créer des 'hashmaps' artificiels en javascript. Tout ce que je cherche, c’est des paires clé | valeur, le temps d’exécution réel n’est pas important. La méthode ci-dessous fonctionne bien.
Y a-t-il d'autres moyens de s'y retrouver?
for (var i in a_hashMap[i]) {
console.log('Key is: ' + i + '. Value is: ' + a_hashMap[i]);
}
Je rencontre un problème où cela génère un tas de clés non définies après la première clé, lorsque le tableau ne contient qu'une entrée. J'ai l'impression que c'est parce que le code est dans une boucle qui utilise i, même si cela ne devrait pas se produire lorsque je suis en mode débogage Je ne peux pas non plus changer car la boucle for semble ne pas comprendre la variable remplacée.
Quelqu'un a des idées?
for (var i in a_hashmap[i])
n'est pas correcte. CA devrait etre
for (var i in a_hashmap)
ce qui signifie "boucle sur les propriétés de a_hashmap
, attribuant chaque nom de propriété à i
"
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]]);
}
Tu veux dire
for (var i in a_hashmap) { // Or `let` if you're a language pedant :-)
...
}
i
n'est pas défini lorsque la boucle for est configurée.
Vous pouvez utiliser la fonction JQuery
$.each( hashMap, function(index,value){
console.log("Index = " + index + " value = " + value);
})
Essayez ceci pour imprimer la console correctement ...
for(var i in a_hashMap) {
if (a_hashMap.hasOwnProperty(i)) {
console.log('Key is: ' + i + '. Value is: ' + a_hashMap[i]);
}
}
Itérer sur une carte en vanille Javascript est 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.
}
}
Ceci est un ancien post, mais une façon dont je peux penser est
const someMap = { a: 1, b: 2, c: 3 };
Object.keys(someMap)
.map(key => 'key is ' + key + ' value is ' + someMap[key]);
Faut-il utiliser cette façon de faire des itérations? Y at-il des problèmes avec cette approche?