3 votes

La stabilité de Set in JavaScript est-elle garantie ?

En jouant avec Set, il semble être stable (c'est-à-dire que les éléments restent dans l'ordre dans lequel ils sont vus) :

> [...new Set(["foo", "bar", "foo", "foo", "baz", "bar"])]
["foo", "bar", "baz"]

Mais je ne trouve pas de documentation indiquant que sa stabilité est garantie.

2voto

Jan Stránský Points 1602

Según MDN vous pouvez itérer à travers les éléments d'un ensemble dans l'ordre d'insertion . La page de documentation détaillée de Set Les méthodes sont pleines de déclarations "dans l'ordre d'insertion".

Un test :

a = new Set()
a.add(1)
a.add(2)
a.add(4)
a.add(3)
console.log([...a]) // [1,2,4,3]

a.add(2) // already present element has no effect on order
console.log([...a]) // [1,2,4,3]

0voto

Chas. Owens Points 40887

Le site Spécification du langage ECMAScript® 2021 dit que Set(interable) appellera .add pour chaque élément au fur et à mesure que l'itérable les renvoie. Le site .add dit qu'elle ajoutera des éléments qui n'existent pas. Donc la stabilité de Set dépend de la stabilité de l'itérable utilisé. Je n'ai plus de tuits et je suis prêt à considérer comme acquis qu'un itérateur pour les tableaux est stable (parce que si ce n'était pas le cas, tout serait cassé), mais si quelqu'un pousse la garantie plus loin, je déplacerai le drapeau accepté vers cette réponse.

Prograide.com

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.

Powered by:

X