0
votes

Ajoutez une clé à un objet à une position particulière dans JavaScript

Voici mon code, dans lequel sur la base d'un certain type d'utilisateur, je souhaite ajouter une clé supplémentaire à l'objet à une position particulière. Actuellement, je passe littéralement dupliquer le tout et passez ensuite à la table. Y a-t-il un moyen plus propre de faire la même chose?

code - xxx


7 commentaires

Il n'y a pas de garantie d'ordre des clés de l'objet. Vous devriez utiliser des tableaux pour cela.


Si vous pensez que les propriétés sont dans un ordre spécifique, vous ne faites probablement pas quelque chose de bien. Bien qu'il existe des règles de commande, vous devez utiliser par programme que vous devez utiliser des tableaux pour commander des choses et des propriétés pour des choses indexées (qui n'ont pas de commande). De plus, JavaScript ne fournit aucun moyen d'insérer une propriété dans un ordre spécifique autre que à la fin de la liste des propriétés.


Si les données sont affichées dans une table HTML ... donnez simplement une null ou quelque chose comme un espace réservé. Votre motif sera plus facile à itérer si converti sur un tableau de matrices.


@MaHeeerali dans ma table de données, je récupère des clés par objet.keys (myheaderkey) qui me donne des clés dans un ordre correct dans une matrice. Laissez-moi savoir si cela échoue également dans certains scénarios que pour la mise en œuvre actuelle, je l'obtiens correctement


@ jfriend00 Faites-moi savoir s'il y a une mise en garde si je choisis les clés de l'objet.keys dans ma table de données. Bien que avec la mise en œuvre actuelle, c'est me donner des clés correctes dans un tableau


Il n'y a pas de position particulière dans un objet, les tableaux ont cela.


@NESH - Vous devrez nous montrer le code qui utilise la commande. En général, si vous voulez la commande, les propriétés ne sont pas le bon outil.


5 Réponses :


0
votes

Vous pouvez d'abord construire un objet avec des valeurs par défaut. Ajoutez ensuite une propriété supplémentaire si la condition est vraie et le renvoie enfin. E.g: xxx


0 commentaires

3
votes

Il suffit de supprimer les touches qui doivent être excluées pour l'utilisateur non valide: xxx

Supprimer l'opérateur


0 commentaires

0
votes

Que Maheer Ali commenté devrait être une réponse:
Les objets ne garantissent pas l'ordre de leurs clés. Pour ces matrices d'utilisation.

Donc, vous aurez probablement P>

const columns = [tableLabels.tb1, tableLabels.tb3];
if (valid) {
  columns.splice(1, 0, tableLabels.tb2);
}


0 commentaires

0
votes

Vous pouvez utiliser la syntaxe de diffusion pour éviter le code dupliqué.

 const obj = { ...tableLabels }

if (!valid_user) {
    // Delete tb4 if user is invalid
    delete obj.tb4;
}

return obj;


0 commentaires

0
votes

Je ferais comme ça, une combinaison de Spread et Destructor < Pré> xxx


0 commentaires