| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/Array/with | [Back] [Original] |
Get to know MDN better
Cette page a t traduite partir de l'anglais par la communaut. Vous pouvez contribuer en rejoignant la communaut francophone sur MDN Web Docs.
Cette fonctionnalit est bien tablie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2023.
La mthode with() des instances de Array est la version sans mutations de l'utilisation de la notation entre crochets pour modifier la valeur un indice donn. Elle retourne un nouveau tableau dans lequel l'lment l'indice donn est remplac par la valeur fournie.
arrayInstance.with(index, value)
indexIndice ( partir de zro) modifier dans le tableau, converti en entier.
-array.length <= index < 0, index + array.length est utilis.RangeError est leve.valueToute valeur affecter l'indice donn.
Un nouveau tableau dans lequel l'lment index est remplac par value.
RangeErrorLeve si index >= array.length ou index < -array.length.
La mthode with() modifie la valeur un indice donn dans le tableau, en retournant un nouveau tableau dans lequel l'lment cet indice est remplac par la valeur fournie. Le tableau d'origine n'est pas modifi. Cela permet d'enchaner les mthodes de tableau lors des manipulations.
En combinant with() avec at(), vous pouvez lire et crire (respectivement) dans un tableau en utilisant des indices ngatifs.
La mthode with() ne produit jamais de tableau creux. Si le tableau source est creux, les cases vides seront remplaces par undefined dans le nouveau tableau.
La mthode with() est gnrique. Elle attend seulement que la valeur de this possde une proprit length et des proprits indices entiers.
const arr = [1, 2, 3, 4, 5];
console.log(arr.with(2, 6)); // [1, 2, 6, 4, 5]
console.log(arr); // [1, 2, 3, 4, 5]
Avec la mthode with(), vous pouvez mettre jour un lment d'un tableau puis appliquer d'autres mthodes de tableau.
const arr = [1, 2, 3, 4, 5];
console.log(arr.with(2, 6).map((x) => x ** 2)); // [1, 4, 36, 16, 25]
with() sur des tableaux creuxLa mthode with() cre toujours un tableau dense.
const arr = [1, , 3, 4, , 6];
console.log(arr.with(0, 2)); // [2, undefined, 3, 4, undefined, 6]
with() sur des objets qui ne sont pas des tableauxLa mthode with() cre et retourne un nouveau tableau. Elle lit la proprit length de this puis accde chaque proprit dont la cl est un entier non ngatif infrieur length. chaque accs, l'lment du tableau l'indice correspondant est dfini la valeur de la proprit. Enfin, la valeur index est dfinie value.
const objetSimilaireTableau = {
length: 3,
unrelated: "foo",
0: 5,
2: 4,
3: 3, // ignor par with() car length vaut 3
};
console.log(Array.prototype.with.call(objetSimilaireTableau, 0, 1));
// [ 1, undefined, 4 ]
| Spcification |
|---|
| ECMAScript 2027 LanguageSpecification # sec-array.prototype.with |
Array.prototype.toReversed()Array.prototype.toSorted()Array.prototype.toSpliced()Array.prototype.at()TypedArray.prototype.with()Array.prototype.with dans core-js (angl.)Array.prototype.with (angl.)Cette page a t modifie le 6 nov. 2025 par les contributeurices du MDN.
Arrayat()concat()copyWithin()entries()every()fill()filter()find()findIndex()findLast()findLastIndex()flat()flatMap()forEach()includes()indexOf()join()keys()lastIndexOf()map()pop()push()reduce()reduceRight()reverse()shift()slice()some()sort()splice()toLocaleString()toReversed()toSorted()toSpliced()toString()unshift()values()with()[Symbol.iterator]()Object/FunctionObject.prototype.__defineGetter__()Object.prototype.__defineSetter__()Object.prototype.__lookupGetter__()Object.prototype.__lookupSetter__()Object.prototype.hasOwnProperty()Object.prototype.isPrototypeOf()Object.prototype.propertyIsEnumerable()Object.prototype.toLocaleString()Object.prototype.toString()Object.prototype.valueOf()Certaines parties de ce contenu sont protges par le droit d'auteur 19982026 des contributeurs individuels de mozilla.org. Contenu disponible sous une licence Creative Commons.
| Web Proxy Viewer | New URL | Original Page |