From bf8e099b9c8b3c60d60b3712b4fc97b052c39887 Mon Sep 17 00:00:00 2001 From: julieng Date: Tue, 3 Aug 2021 08:03:23 +0200 Subject: convert content to md --- .../global_objects/array/copywithin/index.md | 139 +++++++++------------ 1 file changed, 58 insertions(+), 81 deletions(-) (limited to 'files/fr/web/javascript/reference/global_objects/array/copywithin') diff --git a/files/fr/web/javascript/reference/global_objects/array/copywithin/index.md b/files/fr/web/javascript/reference/global_objects/array/copywithin/index.md index befc06152e..e28200ab55 100644 --- a/files/fr/web/javascript/reference/global_objects/array/copywithin/index.md +++ b/files/fr/web/javascript/reference/global_objects/array/copywithin/index.md @@ -12,49 +12,47 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Array/copyWithin original_slug: Web/JavaScript/Reference/Objets_globaux/Array/copyWithin --- -
{{JSRef}}
+{{JSRef}} -

La méthode copyWithin() effectue une copie superficielle (shallow copy) d'une partie d'un tableau sur ce même tableau et le renvoie, sans modifier sa taille.

+La méthode **`copyWithin()`** effectue une copie superficielle (_shallow copy_) d'une partie d'un tableau sur ce même tableau et le renvoie, sans modifier sa taille. -
{{EmbedInteractiveExample("pages/js/array-copywithin.html")}}
+{{EmbedInteractiveExample("pages/js/array-copywithin.html")}} -

Syntaxe

+## Syntaxe -
arr.copyWithin(cible)
-arr.copyWithin(cible, début)
-arr.copyWithin(cible, début, fin)
-
+ arr.copyWithin(cible) + arr.copyWithin(cible, début) + arr.copyWithin(cible, début, fin) -

Paramètres

+### Paramètres -
-
cible
-
-

Indice à partir duquel la séquence sera copiée. Si la valeur est négative, cible sera compté à partir de la fin du tableau.

+- `cible` -

Si cible est supérieur ou égal à arr.length, rien ne sera copié. Si cible est positionné apès début, la séquence copiée sera réduite pour correspondre à arr.length.

-
-
début {{optional_inline}}
-
Indice de début de la séquence a copier. Si la valeur est négative, début sera compté à partir de la fin du tableau. Si début est omis, copyWithin copiera à partir du début du tableau (par défaut 0).
-
fin {{optional_inline}}
-
Indice de fin de la séquence a copier. copyWithin copie jusqu'à fin (non-inclusif). Si la valeur est négative, end sera compté à partir de la fin du tableau. Si end est omis, copyWithin copiera jusqu'à la fin du tableau (par défaut arr.length).
-
+ - : Indice à partir duquel la séquence sera copiée. Si la valeur est négative, `cible `sera compté à partir de la fin du tableau. -

Valeur de retour

+ Si `cible `est supérieur ou égal à `arr.length`, rien ne sera copié. Si `cible` est positionné apès `début`, la séquence copiée sera réduite pour correspondre à `arr.length`. -

Le tableau modifié par la méthode.

+- `début` {{optional_inline}} + - : Indice de début de la séquence a copier. Si la valeur est négative, `début` sera compté à partir de la fin du tableau. Si `début` est omis, `copyWithin` copiera à partir du début du tableau (par défaut 0). +- `fin` {{optional_inline}} + - : Indice de fin de la séquence a copier. `copyWithin` copie jusqu'à `fin` (non-inclusif). Si la valeur est négative, `end` sera compté à partir de la fin du tableau. Si `end` est omis, `copyWithin` copiera jusqu'à la fin du tableau (par défaut `arr.length`). -

Description

+### Valeur de retour -

La fonction copyWithin() fonctionne de la même façon que memmove en C/C++. C'est une méthode très performante pour décaler les données d'un {{jsxref("Array")}} ou d'un {{jsxref("TypedArray")}} (dans ce cas, on pourra utiliser {{jsxref("TypedArray/copyWithin", "TypedArray.copyWithin()")}}). La séquence est copiée et collée en une opération. La séquence collée aura les valeurs copiées même si les zones de copiage et de collage se chevauchent.

+Le tableau modifié par la méthode. -

La fonction copyWithin() est intentionnellement générique, il n'est pas nécessaire que this soit un objet {{jsxref("Array", "Array")}}.

+## Description -

De plus, copyWithin() est une méthode qui modifie l'objet courant. Elle ne modifie pas la longueur de this, mais change son contenu et créé de nouvelles propriétés si nécessaire.

+La fonction `copyWithin()` fonctionne de la même façon que `memmove` en C/C++. C'est une méthode très performante pour décaler les données d'un {{jsxref("Array")}} ou d'un {{jsxref("TypedArray")}} (dans ce cas, on pourra utiliser {{jsxref("TypedArray/copyWithin", "TypedArray.copyWithin()")}}). La séquence est copiée et collée en une opération. La séquence collée aura les valeurs copiées même si les zones de copiage et de collage se chevauchent. -

Exemples

+La fonction `copyWithin()` est intentionnellement générique, il n'est pas nécessaire que `this` soit un objet {{jsxref("Array", "Array")}}. -
[1, 2, 3, 4, 5].copyWithin(-2);
+De plus, `copyWithin()` est une méthode qui modifie l'objet courant. Elle ne modifie pas la longueur de `this`, mais change son contenu et créé de nouvelles propriétés si nécessaire.
+
+## Exemples
+
+```js
+[1, 2, 3, 4, 5].copyWithin(-2);
 // [1, 2, 3, 1, 2]
 
 [1, 2, 3, 4, 5].copyWithin(0, 3);
@@ -78,13 +76,14 @@ i32a.copyWithin(0, 2);
 // Sur les plates-formes qui ne supportent pas encore ES2015 :
 [].copyWithin.call(new Int32Array([1, 2, 3, 4, 5]), 0, 3, 4);
 // Int32Array [4, 2, 3, 4, 5]
-
+``` -

Prothèse d'émulation (polyfill)

+## Prothèse d'émulation (_polyfill_) -

Cette méthode a été ajoutée à la spécification ECMAScript 6 et peut ne pas être utilisable dans tous les environnements. Voici un fragment de code qui permet d'émuler cette méthode :

+Cette méthode a été ajoutée à la spécification ECMAScript 6 et peut ne pas être utilisable dans tous les environnements. Voici un fragment de code qui permet d'émuler cette méthode : -
if (!Array.prototype.copyWithin) {
+```js
+if (!Array.prototype.copyWithin) {
   Object.defineProperty(Array.prototype, 'copyWithin', {
     value: function(target, start/*, end*/) {
     // Steps 1-2.
@@ -95,27 +94,27 @@ i32a.copyWithin(0, 2);
     var O = Object(this);
 
     // Steps 3-5.
-    var len = O.length >>> 0;
+    var len = O.length >>> 0;
 
     // Steps 6-8.
-    var relativeTarget = target >> 0;
+    var relativeTarget = target >> 0;
 
-    var to = relativeTarget < 0 ?
+    var to = relativeTarget < 0 ?
       Math.max(len + relativeTarget, 0) :
       Math.min(relativeTarget, len);
 
     // Steps 9-11.
-    var relativeStart = start >> 0;
+    var relativeStart = start >> 0;
 
-    var from = relativeStart < 0 ?
+    var from = relativeStart < 0 ?
       Math.max(len + relativeStart, 0) :
       Math.min(relativeStart, len);
 
     // Steps 12-14.
     var end = arguments[2];
-    var relativeEnd = end === undefined ? len : end >> 0;
+    var relativeEnd = end === undefined ? len : end >> 0;
 
-    var final = relativeEnd < 0 ?
+    var final = relativeEnd < 0 ?
       Math.max(len + relativeEnd, 0) :
       Math.min(relativeEnd, len);
 
@@ -125,14 +124,14 @@ i32a.copyWithin(0, 2);
     // Steps 16-17.
     var direction = 1;
 
-    if (from < to && to < (from + count)) {
+    if (from < to && to < (from + count)) {
       direction = -1;
       from += count - 1;
       to += count - 1;
     }
 
     // Step 18.
-    while (count > 0) {
+    while (count > 0) {
       if (from in O) {
         O[to] = O[from];
       } else {
@@ -150,43 +149,21 @@ i32a.copyWithin(0, 2);
   configurable: true,
   writable: true
   });
-}
- -

Spécifications

- - - - - - - - - - - - - - - - - - - - - - - - - - -
SpécificationÉtatCommentaires
{{SpecName('ES2015', '#sec-array.prototype.copywithin', 'Array.prototype.copyWithin')}}{{Spec2('ES2015')}}Définition initiale.
{{SpecName('ES2016', '#sec-array.prototype.copywithin', 'Array.prototype.copyWithin')}}{{Spec2('ES2016')}} 
{{SpecName('ESDraft', '#sec-array.prototype.copywithin', 'Array.prototype.copyWithin')}}{{Spec2('ESDraft')}} 
- -

Compatibilité des navigateurs

- -

{{Compat("javascript.builtins.Array.copyWithin")}}

- -

Voir aussi

- - +} +``` + +## Spécifications + +| Spécification | État | Commentaires | +| -------------------------------------------------------------------------------------------------------------------- | ---------------------------- | -------------------- | +| {{SpecName('ES2015', '#sec-array.prototype.copywithin', 'Array.prototype.copyWithin')}} | {{Spec2('ES2015')}} | Définition initiale. | +| {{SpecName('ES2016', '#sec-array.prototype.copywithin', 'Array.prototype.copyWithin')}} | {{Spec2('ES2016')}} |   | +| {{SpecName('ESDraft', '#sec-array.prototype.copywithin', 'Array.prototype.copyWithin')}} | {{Spec2('ESDraft')}} |   | + +## Compatibilité des navigateurs + +{{Compat("javascript.builtins.Array.copyWithin")}} + +## Voir aussi + +- {{jsxref("Array", "Array")}} -- cgit v1.2.3-54-g00ecf