Est-il possible de créer un tableau de longueur fixe en javascript?
Est-il possible, en Javascript, pour créer un tableau dont la longueur est assuré de rester le même?
Par exemple, la matrice A est créé avec la longueur 2. Par la suite, toute tentative d'appel A. push() ou A. pop(), ou définir la valeur de A[5] échouera. A. la longueur sera toujours 2.
C'est la façon que les tableaux typés (par exemple Float32Array) travaillent déjà. Ils ont une taille fixe. Mais je veux un moyen d'obtenir le même comportement sur un réseau régulier.
Pour ma situation spécifique, je voudrais créer une longueur fixe de tableau où chaque entrée est un objet. Mais je voudrais quand même savoir la réponse à la question générale.
source d'informationauteur Daniel Howard
Vous devez vous connecter pour publier un commentaire.
Mise à jour:
Objet.joint (qui fait partie de ES2015) permettra de faire exactement cela:
Réponse Originale À Cette Question:
Presque. Comme il a été suggéré par titusfx vous pouvez figer l'objet:
Toutefois vous ne parvenez pas à modifier les valeurs d'un figée de l'objet.
Si vous avez un tableau d'objets, ceci peut ne pas être un problème puisque vous pouvez toujours
changer les valeurs des objets.
Pour les tableaux de nombres il y a bien sûr tableaux typés.
Object.freeze
fait partie de ES2015 mais la plupart des navigateurs semblent la soutenir, y compris IE9. Vous pouvez bien sûr fonction-test:if(Object.freeze) { Object.freeze(obj); }
En fait de créer un entièrement optimisé vrai c comme tableau fixe en js sur la plupart des navigateurs modernes (y compris IE 11), vous pouvez utiliser: TypedArray ou ArrayBuffer comme suit:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray
J'ai écrit un tableau fixe https://github.com/MatrixAI/js-array-fixed qui est une bibliothèque fournissant vous avec longueur fixe de tableaux et de longueur fixe dense tableaux (arrays, qui a toujours ses éléments effondrés gauche ou droit fermé).
Il prend en charge de nombreux standard tableau des opérations telles que l'épissure et tranchez-les. Mais plus les opérations peuvent être ajoutés dans le futur.
Le concept de
push
ne fait pas sens, au lieu de cela, il estcaret*
des méthodes pour insérer un élément, et de faire sortir des éléments qui existent déjà dans les logements vides.Je sais que c'est une vieille question, mais de nos jours il y a un nœud de module qui ne fonctionne tout simplement de ce qu'on appelle fixe-tableau