J'ai créé ce code JS dans un fichier HTML:
abc,def
Lorsque je rend le fichier, j'obtiens cette erreur:
Uncaught TypeError: keyArrayX.join is not a function
Mais le résultat de keys ()
est un tableau, donc je ne comprends pas ce qui ne va pas ici. Mon objectif est de renvoyer une chaîne concaténée de toutes les clés du tableau, dans ce cas ce serait:
<script> x=[]; x["abc"]={ a:1, b:2 } x["def"]={ a:234, b:5655 } keyArrayX=x.keys(); console.log(keyArrayX.join()); </script>
4 Réponses :
"Mais le résultat de keys () est un tableau" ,
La valeur de retour de keys ()
n'est pas un tableau. Selon MDN
Valeur renvoyée
Un nouvel objet d'itérateur Array.
Si vous voulez des clés, utilisez Object.keys()
let x=[]; x["abc"]={ a:1, b:2 } x["def"]={ a:234, b:5655 } keyArrayX=Object.keys(x); console.log(keyArrayX.join());
Veuillez utiliser l'objet . keys ()
au lieu de x.keys ()
;
De plus, var x = {}
est correct pour le dictionnaire
let x = {}; x["abc"] = { a: 1, b: 2 } x["def"] = { a: 234, b: 5655 } let keyArrayX = Object.keys(x); console.log(keyArrayX.join());
Vous devez utiliser Object.keys(x)
.
x=[]; x["abc"]={ a:1, b:2 } x["def"]={ a:234, b:5655 } keyArrayX=Object.keys(x); console.log(keyArrayX.join());
Voulez-vous vraiment définir les clés dans un tableau plutôt que dans un objet?
x={} x.abc = {};// will be the ideal way x.def= {};
et ensuite pour obtenir les clés Object.keys (x)
devrait être le chemin pour aller avoir une carte de clés
Il faut enregistrer ["abc", "def"]
.
Object.keys code> fonctionnera sur
x
indépendamment de son affectation en tant que tableau ou objet.
N'ajoutez pas de clés non entières aux tableaux. À la place, faites de
x
un objetx = {}
et utilisezObject.keys (x)
.