Pourquoi inverse () code> ne fonctionne pas si mon tableau a des éléments avec une chaîne en tant que clé.
var myArray = [];
myArray["test"] = 100;
myArray["test2"] = 200;
console.log(myArray)
console.log(myArray.reverse())
3 Réponses :
Vous devrez soit: P>
Bien que les numéros ont une commande intrinsèque, des clés de propriété de l'objet Suivez les règles différentes . Si vous souhaitez inverser un objet indexé à la chaîne, envisagez d'écrire une fonction pour insérer des objets sur une nouvelle carte dans l'ordre inverse. P> .Reverse () code> est une fonction de tableaux, où des éléments sont indexés par leur position. Votre code n'ajoute pas d'éléments à la matrice, mais ajoutez plutôt des propriétés sur l'objet Array. Cela fonctionne et les propriétés sont accessibles, mais l'inversion ne fait rien car ce ne sont pas des éléments. Le tableau est toujours de 0 longueur. P>
PUSH () CODE> ou des indices numériques, auquel cas vous perdrez les indices de chaîne, mais pouvez utiliser des méthodes de tri des arraes telles que
. / code> li>
ol>
Puisque vous n'avez pas besoin de méthodes de tableau, il serait préférable de simplement utiliser un objet à la place.
Vous pouvez créer un nouveau tableau inversé en boucle sur P> objet.keys () code> en arrière . Voir le code en action ici . P>
myArray = Object.entries(myArray).reverse().reduce((acc,[key,val])=>(acc[key]=val,acc),[])
Semble un peu compliqué. Aucun moyen de le simplifier en quelque sorte?
L'utilisation d'un accès de propriété sur un tableau n'est pas une bonne pratique, envisagez d'utiliser un autre type
@ Mlarionov Oui, le tableau doit être un objet.
Weird prntscr.com/t5qqlu On dirait que seules les clés changèrent, mais sous l'aperçu, tout ressemble à la même chose
@Dipix Avez-vous essayé de la journalisation objet.entries code> du tableau? Comment cela est affiché dans la console peut varier. S'il est toujours dans le mauvais ordre, envisagez de modifier le tableau associatif vers un objet (
{} code>).
Les valeurs des tableaux ne sont accessibles que par index.
Vous pouvez stocker des valeurs par les touches des objets. P> qui dit, vous pouvez inverser un objet en faisant cela: p> myarray [0] = 100; code> p>
myarray [1] = 200; code> < /p >p >CODECODE >CONSOLE.LOG(MYARRAY) // [100, 200] CODE> P>
console.log (myarray.Reverse ()) // [200 , 100] code> p>
Cherchez-vous d'inverser une chaîne ou un tableau?
J'ai besoin d'inverser des éléments dans mon tableau
Ce n'est pas un tableau. Vous avez défini cela comme une matrice, mais a ensuite attribué des données comme un objet JSON. faire
myarray.push (100); code> pour garder vos données comme une matrice.