diff options
| author | Masahiro FUJIMOTO <mfujimot@gmail.com> | 2021-09-04 00:46:12 +0900 |
|---|---|---|
| committer | Masahiro FUJIMOTO <mfujimot@gmail.com> | 2021-09-04 00:46:12 +0900 |
| commit | fe6f6abf2b7c497bf1f97f73a82dde7cf48eb79f (patch) | |
| tree | 51b7edfc370236684a203f4e69ae67bb7d24b549 /files/fr/web/javascript/reference/global_objects/array/push | |
| parent | 04ea4edc83cc12142ed151bbea2c65cffc8e76f6 (diff) | |
| parent | eeb07fe338cdc90092841d717919f46f9d9e3ff9 (diff) | |
| download | translated-content-fe6f6abf2b7c497bf1f97f73a82dde7cf48eb79f.tar.gz translated-content-fe6f6abf2b7c497bf1f97f73a82dde7cf48eb79f.tar.bz2 translated-content-fe6f6abf2b7c497bf1f97f73a82dde7cf48eb79f.zip | |
Merge branch 'main' into 20210818-Glossary/Type
Diffstat (limited to 'files/fr/web/javascript/reference/global_objects/array/push')
| -rw-r--r-- | files/fr/web/javascript/reference/global_objects/array/push/index.html | 139 | ||||
| -rw-r--r-- | files/fr/web/javascript/reference/global_objects/array/push/index.md | 114 |
2 files changed, 114 insertions, 139 deletions
diff --git a/files/fr/web/javascript/reference/global_objects/array/push/index.html b/files/fr/web/javascript/reference/global_objects/array/push/index.html deleted file mode 100644 index c7f18ce86b..0000000000 --- a/files/fr/web/javascript/reference/global_objects/array/push/index.html +++ /dev/null @@ -1,139 +0,0 @@ ---- -title: Array.prototype.push() -slug: Web/JavaScript/Reference/Global_Objects/Array/push -tags: - - Array - - JavaScript - - Méthode - - Prototype - - Reference -translation_of: Web/JavaScript/Reference/Global_Objects/Array/push -original_slug: Web/JavaScript/Reference/Objets_globaux/Array/push ---- -<div>{{JSRef}}</div> - -<p>La méthode <code><strong>push()</strong></code> ajoute un ou plusieurs éléments à la fin d'un tableau et retourne la nouvelle taille du tableau.</p> - -<div>{{EmbedInteractiveExample("pages/js/array-push.html")}}</div> - -<h2 id="Syntaxe">Syntaxe</h2> - -<pre class="syntaxbox"><var>arr</var>.push(<var>élément1</var>, ..., <var>élémentN</var>)</pre> - -<h3 id="Paramètres">Paramètres</h3> - -<dl> - <dt><code>élément1, ...,élémentN</code></dt> - <dd>Les éléments à ajouter à la fin du tableau.</dd> -</dl> - -<h3 id="Valeur_de_retour">Valeur de retour</h3> - -<p>La nouvelle valeur de la propriété {{jsxref("Array.length", "length")}} de l'objet sur lequel la méthode a été appelée.</p> - -<h2 id="Description">Description</h2> - -<p>La méthode <code>push</code> permet d'ajouter des valeurs à un tableau.</p> - -<p><code>push</code> est une méthode générique. Cette méthode peut ainsi être utilisée avec les méthodes {{jsxref("Function.call()")}} ou {{jsxref("Function.apply()")}} sur des objets similaires aux tableaux.</p> - -<p>La méthode <code>push</code> se base sur la propriété <code>length</code> pour déterminer à partir de quel index les valeurs données doivent être insérées. Si la propriété <code>length</code> ne peut pas être convertie en nombre, l'index utilisé est 0. Si la propriété <code>length</code> n'est pas définie, elle est alors créée.</p> - -<p>Bien que <code>push</code> soit une méthode générique, elle ne peut pas être utilisée sur les chaînes de caractères ou sur l'objet <code>arguments</code> car ils sont immuables.</p> - -<h2 id="Exemples">Exemples</h2> - -<h3 id="Ajouter_des_éléments_à_un_tableau">Ajouter des éléments à un tableau</h3> - -<p>Le code suivant crée un tableau <code>sports</code> contenant à sa création deux éléments, auxquels sont ajoutés deux nouveaux éléments. La variable <code>total</code> contient la nouvelle taille du tableau.</p> - -<pre class="brush: js">var sports = ["plongée", "baseball"]; -var total = sports.push("football", "tennis"); - -console.log(sports); // ["plongée", "baseball", "football", "tennis"] -console.log(total); // 4 -</pre> - -<h3 id="Fusionner_deux_tableaux">Fusionner deux tableaux</h3> - -<p>Dans l'exemple qui suit, on utilise la méthode {{jsxref("Function.apply()")}} pour ajouter les différents éléments d'un second tableau</p> - -<pre class="brush: js">var legumes = ['navet', 'pomme de terre']; -var autresLegumes = ['céleri', 'radis']; - -// On fusionne les deux tableaux -// Équivalent à legumes.push('céleri', 'radis'); -Array.prototype.push.apply(legumes, autresLegumes); - -console.log(legumes); // ['navet', 'pomme de terre', 'céleri', 'radis']</pre> - -<div class="note"> -<p><strong>Note :</strong> Attention à ne pas utiliser cette méthode lorsque les tableaux sont très grands car une fonction n'accepte qu'un nombre limité d'arguments. Voir {{jsxref("Function.apply","apply()")}} pour plus d'informations sur ces limites.</p> -</div> - -<h3 id="Utiliser_un_objet_comme_on_utiliserait_un_tableau">Utiliser un objet comme on utiliserait un tableau</h3> - -<p>Comme nous l'avons vu auparavant, <code>push</code> est une méthode générique et nous pouvons donc utiliser <code>Array.prototype.push</code> sur les objets. On notera qu'il n'est pas nécessaire de stocker un ensemble d'objets. En fait, on enregistre l'ensemble dans l'objet et on utilise <code>call</code> sur <code>Array.prototype.push</code> :</p> - -<pre class="brush: js">var obj = { - length: 0, - - ajoutElem: function ajoutElem (elem) { - // obj.length est automatiquement incrémenté - // quand on ajoute un élément - [].push.call(this, elem); - } -}; - -// Ajoutons quelques objets vides pour illustrer -// l'exemple. -obj.ajoutElem({}); -obj.ajoutElem({}); -console.log(obj.length); -// → 2 -</pre> - -<h2 id="Spécifications">Spécifications</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Spécification</th> - <th scope="col">État</th> - <th scope="col">Commentaires</th> - </tr> - <tr> - <td>{{SpecName('ES3')}}</td> - <td>{{Spec2('ES3')}}</td> - <td>Définition initiale. Implémentée avec JavaScript 1.2.</td> - </tr> - <tr> - <td>{{SpecName('ES5.1', '#sec-15.4.4.7', 'Array.prototype.push')}}</td> - <td>{{Spec2('ES5.1')}}</td> - <td></td> - </tr> - <tr> - <td>{{SpecName('ES6', '#sec-array.prototype.push', 'Array.prototype.push')}}</td> - <td>{{Spec2('ES6')}}</td> - <td></td> - </tr> - <tr> - <td>{{SpecName('ESDraft', '#sec-array.prototype.push', 'Array.prototype.push')}}</td> - <td>{{Spec2('ESDraft')}}</td> - <td></td> - </tr> - </tbody> -</table> - -<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2> - -<p>{{Compat("javascript.builtins.Array.push")}}</p> - -<h2 id="Voir_aussi">Voir aussi</h2> - -<ul> - <li>{{jsxref("Array.prototype.pop()")}}</li> - <li>{{jsxref("Array.prototype.shift()")}}</li> - <li>{{jsxref("Array.prototype.unshift()")}}</li> - <li>{{jsxref("Array.prototype.concat()")}}</li> -</ul> diff --git a/files/fr/web/javascript/reference/global_objects/array/push/index.md b/files/fr/web/javascript/reference/global_objects/array/push/index.md new file mode 100644 index 0000000000..0472582660 --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/array/push/index.md @@ -0,0 +1,114 @@ +--- +title: Array.prototype.push() +slug: Web/JavaScript/Reference/Global_Objects/Array/push +tags: + - Array + - JavaScript + - Méthode + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Array/push +original_slug: Web/JavaScript/Reference/Objets_globaux/Array/push +--- +{{JSRef}} + +La méthode **`push()`** ajoute un ou plusieurs éléments à la fin d'un tableau et retourne la nouvelle taille du tableau. + +{{EmbedInteractiveExample("pages/js/array-push.html")}} + +## Syntaxe + + arr.push(élément1, ..., élémentN) + +### Paramètres + +- `élément1, ...,élémentN` + - : Les éléments à ajouter à la fin du tableau. + +### Valeur de retour + +La nouvelle valeur de la propriété {{jsxref("Array.length", "length")}} de l'objet sur lequel la méthode a été appelée. + +## Description + +La méthode `push` permet d'ajouter des valeurs à un tableau. + +`push` est une méthode générique. Cette méthode peut ainsi être utilisée avec les méthodes {{jsxref("Function.call()")}} ou {{jsxref("Function.apply()")}} sur des objets similaires aux tableaux. + +La méthode `push` se base sur la propriété `length` pour déterminer à partir de quel index les valeurs données doivent être insérées. Si la propriété `length` ne peut pas être convertie en nombre, l'index utilisé est 0. Si la propriété `length` n'est pas définie, elle est alors créée. + +Bien que `push` soit une méthode générique, elle ne peut pas être utilisée sur les chaînes de caractères ou sur l'objet `arguments` car ils sont immuables. + +## Exemples + +### Ajouter des éléments à un tableau + +Le code suivant crée un tableau `sports` contenant à sa création deux éléments, auxquels sont ajoutés deux nouveaux éléments. La variable `total` contient la nouvelle taille du tableau. + +```js +var sports = ["plongée", "baseball"]; +var total = sports.push("football", "tennis"); + +console.log(sports); // ["plongée", "baseball", "football", "tennis"] +console.log(total); // 4 +``` + +### Fusionner deux tableaux + +Dans l'exemple qui suit, on utilise la méthode {{jsxref("Function.apply()")}} pour ajouter les différents éléments d'un second tableau + +```js +var legumes = ['navet', 'pomme de terre']; +var autresLegumes = ['céleri', 'radis']; + +// On fusionne les deux tableaux +// Équivalent à legumes.push('céleri', 'radis'); +Array.prototype.push.apply(legumes, autresLegumes); + +console.log(legumes); // ['navet', 'pomme de terre', 'céleri', 'radis'] +``` + +> **Note :** Attention à ne pas utiliser cette méthode lorsque les tableaux sont très grands car une fonction n'accepte qu'un nombre limité d'arguments. Voir {{jsxref("Function.apply","apply()")}} pour plus d'informations sur ces limites. + +### Utiliser un objet comme on utiliserait un tableau + +Comme nous l'avons vu auparavant, `push` est une méthode générique et nous pouvons donc utiliser `Array.prototype.push` sur les objets. On notera qu'il n'est pas nécessaire de stocker un ensemble d'objets. En fait, on enregistre l'ensemble dans l'objet et on utilise `call` sur `Array.prototype.push` : + +```js +var obj = { + length: 0, + + ajoutElem: function ajoutElem (elem) { + // obj.length est automatiquement incrémenté + // quand on ajoute un élément + [].push.call(this, elem); + } +}; + +// Ajoutons quelques objets vides pour illustrer +// l'exemple. +obj.ajoutElem({}); +obj.ajoutElem({}); +console.log(obj.length); +// → 2 +``` + +## Spécifications + +| Spécification | État | Commentaires | +| ---------------------------------------------------------------------------------------------------- | ---------------------------- | ----------------------------------------------------- | +| {{SpecName('ES3')}} | {{Spec2('ES3')}} | Définition initiale. Implémentée avec JavaScript 1.2. | +| {{SpecName('ES5.1', '#sec-15.4.4.7', 'Array.prototype.push')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-array.prototype.push', 'Array.prototype.push')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-array.prototype.push', 'Array.prototype.push')}} | {{Spec2('ESDraft')}} | | + +## Compatibilité des navigateurs + +{{Compat("javascript.builtins.Array.push")}} + +## Voir aussi + +- {{jsxref("Array.prototype.pop()")}} +- {{jsxref("Array.prototype.shift()")}} +- {{jsxref("Array.prototype.unshift()")}} +- {{jsxref("Array.prototype.concat()")}} |
