| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/Array/copyWithin | [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 septembre 2015.
La mthode copyWithin() des instances de Array copie superficiellement une partie de ce tableau un autre emplacement dans le mme tableau et retourne ce tableau sans en modifier la longueur.
const array = ["a", "b", "c", "d", "e"];
// Copie l'indice 0 l'lment l'indice 3
console.log(array.copyWithin(0, 3, 4));
// Rsultat attendu : Array ["d", "b", "c", "d", "e"]
// Copie l'indice 1 tous les lments de l'indice 3 la fin
console.log(array.copyWithin(1, 3));
// Rsultat attendu : Array ["d", "d", "e", "d", "e"]
copyWithin(target, start)
copyWithin(target, start, end)
targetL'indice ( partir de zro) auquel copier la squence, converti en entier. Cela correspond l'emplacement o l'lment l'indice start sera copi, et tous les lments compris entre start et end seront copis aux indices suivants.
-array.length <= target < 0, on utilise target + array.length.target < -array.length, on utilise 0.target >= array.length, rien n'est copi.target est positionn aprs start aprs normalisation, la copie ne se fait que jusqu' la fin de array.length (autrement dit, copyWithin() n'tend jamais le tableau).startL'indice ( partir de zro) partir duquel commencer copier les lments, converti en entier.
-array.length <= start < 0, on utilise start + array.length.start < -array.length, on utilise 0.start >= array.length, rien n'est copi.end FacultatifL'indice ( partir de zro) auquel arrter de copier les lments, converti en entier. copyWithin() copie jusqu' (mais sans inclure) end.
-array.length <= end < 0, on utilise end + array.length.end < -array.length, on utilise 0.end >= array.length ou si end est omis ou undefined, on utilise array.length, ce qui fait que tous les lments jusqu' la fin sont copis.end implique une position avant ou la mme position que celle implique par start, rien n'est copi.Le tableau modifi.
La mthode copyWithin() fonctionne comme memmove en C et C++ ; c'est une mthode trs performante pour dcaler les donnes d'un tableau (Array). Cela s'applique en particulier la mthode TypedArray du mme nom. La squence est copie et colle en une seule opration ; la squence colle aura les valeurs copies mme si les zones de copie et de collage se chevauchent.
Comme undefined devient 0 lorsqu'il est converti en entier, omettre le paramtre start a le mme effet que de passer 0, ce qui copie tout le tableau la position cible, quivalent un dcalage vers la droite o la borne droite est tronque et la borne gauche est duplique. Ce comportement peut prter confusion pour les lecteursrices de votre code ; il est donc prfrable de passer explicitement 0 comme valeur de start.
console.log([1, 2, 3, 4, 5].copyWithin(2));
// [1, 2, 1, 2, 3] ; dcale tous les lments de 2 positions vers la droite
La mthode copyWithin() est une mthode de mutation. Elle ne modifie pas la longueur de this, mais elle modifie le contenu de this et peut crer de nouvelles proprits ou supprimer des proprits existantes si ncessaire.
La mthode copyWithin() prserve les cases vides. Si la rgion copier est creuxe, les nouveaux indices correspondants des cases vides sont supprims et deviennent aussi des cases vides.
La mthode copyWithin() est gnrique. Elle attend seulement que la valeur de this possde une proprit length et des proprits cls entires. Bien que les chanes de caractres soient aussi similaires des tableaux, cette mthode n'est pas adapte pour tre applique sur elles, car les chanes sont immuables.
copyWithin()console.log([1, 2, 3, 4, 5].copyWithin(0, 3));
// [4, 5, 3, 4, 5]
console.log([1, 2, 3, 4, 5].copyWithin(0, 3, 4));
// [4, 2, 3, 4, 5]
console.log([1, 2, 3, 4, 5].copyWithin(-2, -3, -1));
// [1, 2, 3, 3, 4]
copyWithin() sur des tableaux creuxcopyWithin() propage les cases vides.
console.log([1, , 3].copyWithin(2, 1, 2)); // [1, vide, vide]
copyWithin() sur des objets qui ne sont pas des tableauxLa mthode copyWithin() lit la proprit length de this puis manipule les indices entiers concerns.
const objetSimilaireTableau = {
length: 5,
3: 1,
};
console.log(Array.prototype.copyWithin.call(objetSimilaireTableau, 0, 3));
// { '0': 1, '3': 1, length: 5 }
console.log(Array.prototype.copyWithin.call(objetSimilaireTableau, 3, 1));
// { '0': 1, length: 5 }
// La proprit '3' est supprime car la source copie est une case vide
| Spcification |
|---|
| ECMAScript 2027 LanguageSpecification # sec-array.prototype.copywithin |
ArrayTypedArray.prototype.copyWithin()Array.prototype.copyWithin dans core-js(angl.)Array.prototype.copyWithin(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 |