Maison > Questions et réponses > le corps du texte
Cela crée-t-il davantage de confusion ? L’éboueur sera-t-il content de cela ? </p>
P粉7920264672023-08-23 10:44:49
Object.fromEntries
(ES10)Solution locale et immuable utilisant de nouvelles méthodes Object.fromEntries
:
const newObj = Object.fromEntries( Object.entries(obj).map(([k, v]) => [k.toLowerCase(), v]) );
En attendant que cette fonction soit largement disponible, vous pouvez utiliser la polyfilldéfinition personnalisée suivante :
Object.fromEntries = arr => Object.assign({}, ...Array.from(arr, ([k, v]) => ({[k]: v}) ));
L'un des avantages est que cette méthode est à l'opposé de Object.entries
, vous pouvez donc désormais basculer entre la représentation d'objet et la représentation de tableau.
P粉2587888312023-08-23 00:25:13
Le moyen le plus rapide auquel je puisse penser est de créer un nouvel objet :
var key, keys = Object.keys(obj); var n = keys.length; var newobj={} while (n--) { key = keys[n]; newobj[key.toLowerCase()] = obj[key]; }
Je ne connais pas suffisamment le fonctionnement interne actuel de la v8 pour donner une réponse claire. Il y a quelques années, j'ai vu une vidéo dans laquelle un développeur discutait d'objets et si je me souviens bien, elle supprime simplement la référence et laisse le ramasse-miettes s'en occuper. Mais c’était il y a quelques années, donc même si c’était vrai à l’époque, ce n’est plus nécessairement vrai aujourd’hui.
Est-ce que cela vous causera des ennuis plus tard ? Cela dépend de ce que vous faites, mais probablement pas. La création d'objets éphémères est très courante, le code est donc optimisé pour le gérer. Mais chaque environnement a ses limites et peut-être que cela vous posera des problèmes. Vous devez tester avec des données réelles.