Voici l'exemple de ce que je fais:
var size = new Array("S", "M", "L", "XL", "XXL");
var color = new Array("Red", "Blue", "Green", "White", "Black");
var options = new Array( size, color);
Je fais une boucle qui sélectionne des trucs qui fonctionnent bien, mais je veux aller chercher le nom de l'enfant Array, dans ce cas - taille ou couleur. Quand je fais alerte (options [0]), je récupère tous les éléments du tableau, mais dans certains cas, je souhaite uniquement obtenir le nom du tableau, qui est la taille/couleur, comme je l'ai déjà dit. Y a-t-il moyen d'y parvenir? Merci
Je créerais un objet comme celui-ci:
var options = {
size: ["S", "M", "L", "XL", "XXL"],
color: ["Red", "Blue", "Green", "White", "Black"]
};
alert(Object.keys(options));
Pour accéder aux clés individuellement:
for (var key in options) {
alert(key);
}
P.S .: lorsque vous créez un nouvel objet tableau, n'utilisez pas new Array
, utilisez plutôt []
.
vous pouvez obtenir en utilisant la valeur key
quelque chose comme ceci:
var size = new Array("S", "M", "L", "XL", "XXL");
var color = new Array("Red", "Blue", "Green", "White", "Black");
var options = new Array(size, color);
var len = options.length;
for(var i = 0; i<len; i++)
{
for(var key in options[i])
{
alert(options[i][key])
}
}
voir ici: http://jsfiddle.net/8hmRk/8/
Il n'y a aucun moyen de savoir que les deux membres du tableau options
proviennent de variables nommées size
et color
.
De plus, elles ne sont pas nécessairement appelées exclusivement, toutes les variables peuvent également pointer sur ce tableau.
var notSize = size;
console.log(options[0]); // It is `size` or `notSize`?
Une chose que vous pouvez faire est d’utiliser un objet à la place ...
var options = {
size: size,
color: color
}
Ensuite, vous pourriez accéder à options.size
ou options.color
.
Tu ne peux pas. Le tableau n'a pas de nom.
Vous avez juste deux références au tableau, une dans la variable et une autre dans le troisième.
Il n'y a aucun moyen de trouver toutes les références existantes pour un objet donné.
Si le nom est important, stockez-le avec les données.
var size = { data: ["S", "M", "L", "XL", "XXL"], name: 'size' };
var color = { data: ["Red", "Blue", "Green", "White", "Black"], name: 'color' };
var options = [size, color];
Évidemment, vous devrez modifier le code existant qui accède aux données (puisque vous avez maintenant options[0].data[0]
au lieu de options[0][0]
mais vous avez aussi options[0].name
).
Oui c'est .. .. Vous pouvez utiliser
alert(options[0][0])
pour obtenir la taille "S"
ou
alert(options[0][1])
pour obtenir la couleur "rouge"
Vous avez créé un tableau de tableaux (multidimensionnel). Par conséquent, l'option [0] est le tableau de taille. vous devez référencer le premier élément de l'enfant, qui est pour vous: options [0] [0].
Si vous voulez parcourir toutes les entrées, vous pouvez utiliser la syntaxe for .. in ...
qui est décrite ici .
var a = [1,2,4,5,120,12];
for (var val in t) {
console.log(t[val]);
}
var b = ['S','M','L'];
var both = [a,b];
for (var val in both) {
for(val2 in both[val]){console.log(both[val][val2])}
}
Le tableau est comme n'importe quel autre objet. Vous pouvez lui donner un nom si vous voulez.
var size = new Array("S", "M", "L", "XL", "XXL");
var color = new Array("Red", "Blue", "Green", "White", "Black");
var options = new Array( size, color);
color.name = "color";
size.name = "size";
options[0].name == "size"
>true
Dans ce cas, vous ne souhaitez pas insérer size
et color
dans un tableau, mais dans un objet
var options = {
'size': size,
'color': color
};
Ensuite, vous pouvez accéder aux jeux de clés en
var keys = Object.keys( options );