Vous utilisez un Array comme un "tableau associatif", qui n'existe pas en JavaScript. Utiliser un Object ({}) à la place.
Si vous allez continuer avec un tableau, réaliser que toString() rejoindra tous les numérotés propriétés ainsi que les séparant par une virgule. (le même que .join(",")).
Propriétés comme a et b ne viendra pas à l'aide de cette méthode, car ils ne sont pas dans le numérique index. (ie. le "corps" de la matrice)
En JavaScript, Tableau hérite de Object, de sorte que vous pouvez ajouter et supprimer des propriétés comme tout autre objet. Donc, pour un tableau, le numérotés propriétés (qu'ils sont techniquement juste les cordes sous le capot) sont ce qui compte dans les méthodes comme .toString(), .join(), etc. Vos autres propriétés sont toujours là et très accessible. 🙂
var aa =[];//these are now properties of the object, but not part of the "array body"
aa.a ="A";
aa.b ="B";//these are part of the array's body/contents
aa[0]="foo";
aa[1]="bar";
aa.toString();//most browsers will say "foo,bar" -- the same as .join(",")
toString est une méthode, vous devez ajouter des parenthèses () de faire l'appel de la fonction.
> a =[1,2,3][1,2,3]> a.toString()'1,2,3'
D'ailleurs, si vous souhaitez utiliser les chaînes de caractères comme des clés, alors vous devriez envisager d'utiliser un Object au lieu de Array, et l'utilisation JSON.stringify pour retourner une chaîne de caractères.
>var aa ={}> aa['a']='aaa'> JSON.stringify(aa)'{"a":"aaa","b":"bbb"}'
Type d'erreur pour la parenthèse. C'est corrigé. Pouvez-vous expliquer pourquoi l'utilisation de l'Objet pour la chaîne de clés. Pourquoi le Tableau ne peut pas être utilisé? Et pourquoi s'y opposer.toString() ne fonctionne pas? voir cet excellent post: andrewdupont.net/2006/05/18/...
Si vous avez besoin de l'utilisation de la chaîne, vous devez utiliser
JSON.stringify(aa)
JSON.stringify(aa) ne peut pas imprimer le contenu. Parce que mon tableau est index de chaîne. Il ne fonctionne que pour int index de tableau. Il n'y a pas une telle chose comme un string index de tableau en js. La seule raison aa['a'] fonctionne est parce que le type de Tableau hérite de l'Objet, de sorte qu'il sera semblable à un tableau associatif, alors qu'en fait, beaucoup de la matrice de fonctions ne fonctionnent plus à cause de cela, et il y a d'autres pièges. Si vous avez besoin d'un tableau associatif, vous devez utiliser un objet {a:0, b:4} au lieu de le type du tableau, qui fonctionne uniquement sur les indices numériques [0,4]
Vous utilisez un
Array
comme un "tableau associatif", qui n'existe pas en JavaScript. Utiliser unObject
({}
) à la place.Si vous allez continuer avec un tableau, réaliser que
toString()
rejoindra tous les numérotés propriétés ainsi que les séparant par une virgule. (le même que.join(",")
).Propriétés comme
a
etb
ne viendra pas à l'aide de cette méthode, car ils ne sont pas dans le numérique index. (ie. le "corps" de la matrice)En JavaScript, Tableau hérite de
Object
, de sorte que vous pouvez ajouter et supprimer des propriétés comme tout autre objet. Donc, pour un tableau, le numérotés propriétés (qu'ils sont techniquement juste les cordes sous le capot) sont ce qui compte dans les méthodes comme.toString()
,.join()
, etc. Vos autres propriétés sont toujours là et très accessible. 🙂Lire La documentation de Mozilla pour plus d'informations sur les Tableaux.
OriginalL'auteur Dominic Barnes
toString
est une méthode, vous devez ajouter des parenthèses()
de faire l'appel de la fonction.D'ailleurs, si vous souhaitez utiliser les chaînes de caractères comme des clés, alors vous devriez envisager d'utiliser un
Object
au lieu deArray
, et l'utilisationJSON.stringify
pour retourner une chaîne de caractères.voir cet excellent post: andrewdupont.net/2006/05/18/...
OriginalL'auteur qiao
toString est une fonction, pas une propriété. Vous trouverez cela:
Vous pouvez également utiliser une jointure pour spécifier le séparateur (toString() === join(','))
OriginalL'auteur Glenjamin
Dans un nœud, vous pouvez juste dire
et il va formater comme il se doit.
Si vous avez besoin de l'utilisation de la chaîne, vous devez utiliser
Il n'y a pas une telle chose comme un string index de tableau en js. La seule raison aa['a'] fonctionne est parce que le type de Tableau hérite de l'Objet, de sorte qu'il sera semblable à un tableau associatif, alors qu'en fait, beaucoup de la matrice de fonctions ne fonctionnent plus à cause de cela, et il y a d'autres pièges. Si vous avez besoin d'un tableau associatif, vous devez utiliser un objet
{a:0, b:4}
au lieu de le type du tableau, qui fonctionne uniquement sur les indices numériques[0,4]
OriginalL'auteur Tor Valamo