Javascript: chaque tableau
-
08-07-2019 - |
Question
Remarque: pas de jQuery
Comment pourrais-je faire quelque chose comme ça:
var array = new Array();
array[name] = "Tom";
array[age] = 15;
foreach(array as key=>value){
alert(key + " = " + value);
}
La solution
Tout d’abord, appelez-le obj
ou personne
au lieu de array
; un tableau est une séquence d'éléments similaires, pas un seul objet.
Vous pouvez le faire comme ceci:
var person = new Object();
person['name'] = "Tom";
person['age'] = 15;
for (var key in person) {
if(!person.hasOwnProperty(key)) continue; //Skip base props like toString
alert(key + " = " + person[key]);
}
Vous pouvez également initialiser l'objet à l'aide de propriétés, comme ceci:
person.name = "Tom";
person.age = 15;
Vous pouvez également utiliser la syntaxe littérale d'objet JavaScript :
var person = { name: "Tom", age: 15 };
Autres conseils
Cela fonctionnera dans votre exemple de scénario simple:
for (var key in array) {
alert(key + " = " + array[key]);
}
Pour une utilisation générale, il est recommandé de tester pour vous assurer que la propriété a t été greffé sur l’objet ailleurs dans la chaîne d'héritage :
for (var key in array) {
if (array.hasOwnProperty(key)) {
alert(key + " = " + array[key]);
}
}
Utiliser un objet javascript
var object = {};
object.name = "Tom";
object.age = 15;
for ( var i in object ) {
console.log(i+' = '+ object[i]);
}
Tout d'abord, vous ne voulez pas de tableau, vous voulez un objet. L'idée de PHP sur ce qui constitue un tableau est franchement un peu bizarre.
var stuff = {
name: "Tom",
age: 15
};
/* Note: you could also have done
var stuff = {};
stuff.name = "Tom";
stuff.age = 15;
// or
var stuff = {};
stuff["name"] = "Tom";
stuff["age"] = 15;
*/
for (var key in stuff) {
alert(key + " = " + stuff[key];
}
key=0;while(key<array.length) {
alert(key + " = " + array.item(key));
key++;
}