0
votes

Déplacer la clé / la valeur dans l'objet JavaScript

J'ai un problème: Je voudrais déplacer une clé / valeur d'un objet par une position, j'utilise JavaScript, je pourrais également utiliser Lodash, mais je ne peux pas transformer l'objet en une matrice.

Mon objet P>

"input": {
            "20_": "cd",
            "10_": "ab",
            "30_": "ef"
          }


12 commentaires

Dans ce cas, je suggère d'utiliser un tableau avec la clé commandée pour l'accès. Je ne fierais pas à l'ordre des propriétés. JavaScript garantit la commande de la propriété objet?


Si vous avez besoin d'un objet commandé, utilisez un tableau. Bien que ES2015 spécifie certains commandes pour les propriétés de l'objet, qui ne peuvent pas être utilisées comme ceci.


Vous pouvez également utiliser ensemble qui conserve la commande. xahlee.info/js/javascript_set.html


Quel est le modèle pour changer les valeurs?


Les objets javascript n'ont pas de commande. Utilisez plutôt un tableau comme mentionné dans Déplacer la position de l'élément d'objet dans JavaScript


Dupliqué possible de Objet-Property-Commander


Y a-t-il une logique à l'ordre souhaité? Les clés ne sont pas dans l'ordre numérique et les valeurs ne sont pas dans l'ordre alphabétique.


Oui, car chaque clé / valeur est une ligne dans une table, je veux monter ou descendre une ligne, puis je veux déplacer la clé / la valeur de l'objet. Mon problème est que je dois envoyer cet objet, pas un tableau, peut-être que je vais utiliser un ensemble.


Stocker une table ordonnée comme objet comme celui-ci n'a aucun sens.


Changer la commande n'est pas utile, si vous envoyez l'objet à un serveur en tant que chaîne JSON. JSON.Stringify n'est pas garanti de préserver l'ordre des propriétés de l'objet. Et le résultat final dépend de la manière dont la commande est créée sur le serveur lors de l'analyse JSON à la langue maternelle utilisée,


Chris G Peut-être pour vous, ne jugez pas d'autre emploi si vous ne connaissez pas la situation.


Sans aucun sens n'est pas dépendant de la tâche, il est dépendant de la langue. Un objet est comme un sac où vous déposez les propriétés. Et lorsque vous lisez les propriétés, ils sont soulevés du sac un par un de plus ou moins au hasard jusqu'à ce que le sac soit vide. L'ensemble ES2015 et la carte ne font que faire un trou au fond du sac et lire les propriétés dans l'ordre que vous avez chuté à l'origine. Mais, dans le même temps, vous avez ébranlé le sac.


3 Réponses :


1
votes

Le positionnement des valeurs d'objets n'a aucun impact sur l'objet et la manière dont il s'agit des propriétés et des méthodes appelées. Les propriétés et les méthodes d'objet sont appelées et définies uniquement par leurs clés.


0 commentaires

0
votes

Dans la commande de la propriété d'objet JavaScript est équivalente à la commande d'insertion pour les touches de chaîne et à la commande ascendante pour les touches numériques, qui étant le cas, vous pouvez simplement les insérer dans une commande que vous souhaitez obtenir un résultat souhaité

p>

const input = {
  "10_": "ab",
  "20_": "cd",
  "30_": "ef",
  "40_": "ef",
  "50_": "ef"
}

const [firstKey, secondKey] = Object.keys(input);
const {[firstKey]: firstKeyValue, [secondKey]: secondKeyValue, ...rest} = input

console.log({[secondKey]: secondKeyValue, [firstKey]: firstKeyValue, ...rest })


1 commentaires

Ce n'est pas une norme, juste un choix de vendeurs de navigateurs. Le concept d'ordre "n'a aucun sens ici



0
votes

Un objet est différent d'un tableau, la commande n'a pas d'importance.

Lors de la récupération des données d'un tableau, vous devrez peut-être itérayer tout le tableau. Mais pour un objet comportant des paires de la valeur clé, il vous suffit d'accéder à la valeur à l'aide de la touche.

Par exemple, pour accéder à la valeur de _10 (ci-dessous), il suffit d'écrire fruits.a ou fruits ['a'] xxx

javascript traite les deux objets de la même manière et vous obtenez la même sortie lorsque Vous faites fruits.a et fruits2.a


0 commentaires