Est-il une façon intelligente (i.e. optimisée) pour renommer une clé dans un objet javascript ?
Une façon non optimisé serait :
Merci d’avance pour votre aide.
Est-il une façon intelligente (i.e. optimisée) pour renommer une clé dans un objet javascript ?
Une façon non optimisé serait :
Merci d’avance pour votre aide.
La façon la plus complète (et corriger) de faire cela serait, je crois :
Cette méthode garantit que la propriété renommé a un comportement identique à celui d’origine.
En outre, il me semble que la possibilité pour cela enveloppez dans une fonction/méthode et mettez-le dans `` n’est pas pertinente au sujet de votre question.
Je dirais qu'il serait mieux d'un point de vue conceptuel, afin de laisser de l'ancien objet (l'un sur le web service) comme il est, et de mettre les valeurs que vous avez besoin dans un nouvel objet. Je suis en supposant que vous procédez à l'extraction des champs spécifiques à un moment ou à un autre de toute façon, si ce n'est sur le client, puis au moins sur le serveur. Le fait que vous avez choisi d'utiliser les noms de champs qui sont les mêmes que ceux du service web, seuls les minuscules, ne change pas vraiment. Donc, je vous conseille de faire quelque chose comme ceci:
var myObj = {
field1: theirObj.FIELD1,
field2: theirObj.FIELD2,
(etc)
}
Bien sûr, je suis en train de faire toutes sortes de suppositions, qui peut ne pas être vrai. Si cela ne s'applique pas à vous, ou si elle est trop lente (est-il? Je n'ai pas testé, mais j'imagine que la différence est plus petite que le nombre de champs augmente), s'il vous plaît ignorer tout cela :)
Si vous ne voulez pas faire cela, et vous avez seulement à l'appui de certains navigateurs, vous pouvez également utiliser la nouvelle getters également retourner "en majuscules(champ)": voir http://robertnyman.com/2009/05/28/getters-and-setters-with-javascript-code-samples-and-demos/ et les liens sur cette page pour plus d'informations.
EDIT:
Incroyablement, c'est aussi presque deux fois plus vite, au moins sur mon FF3.5 au travail. Voir: http://jsperf.com/spiny001
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.