diff options
Diffstat (limited to 'files/it/web/javascript/reference/global_objects/array/copywithin')
-rw-r--r-- | files/it/web/javascript/reference/global_objects/array/copywithin/index.html | 180 |
1 files changed, 0 insertions, 180 deletions
diff --git a/files/it/web/javascript/reference/global_objects/array/copywithin/index.html b/files/it/web/javascript/reference/global_objects/array/copywithin/index.html deleted file mode 100644 index 65e00abe47..0000000000 --- a/files/it/web/javascript/reference/global_objects/array/copywithin/index.html +++ /dev/null @@ -1,180 +0,0 @@ ---- -title: Array.prototype.copyWithin() -slug: Web/JavaScript/Reference/Global_Objects/Array/copyWithin -translation_of: Web/JavaScript/Reference/Global_Objects/Array/copyWithin ---- -<div>{{JSRef}}</div> - -<p>Il metodo <code><strong>copyWithin()</strong></code> copia superficialmente una parte di un array in un'altra locazione dello stesso array e lo restituisce, senza modificare la sua dimensione.</p> - -<div>{{EmbedInteractiveExample("pages/js/array-copywithin.html")}}</div> - -<p class="hidden">Il codice sorgente di questo esempio interattivo e' reperibile in una repository di GitHub. Se sei interessato nel contribuire agli esempi interattivi, clona <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> ed inviaci una pull request.</p> - -<h2 id="Sintassi">Sintassi</h2> - -<pre class="syntaxbox"><var>arr</var>.copyWithin(<var>target</var>) -<var>arr</var>.copyWithin(<var>target</var>, <var>start</var>) -<var>arr</var>.copyWithin(<var>target</var>, <var>start</var>, <var>end</var>) -</pre> - -<h3 id="Parametri">Parametri</h3> - -<dl> - <dt><code>target</code></dt> - <dd>Indice zero-based fino al quale copiare la sequenza. Se negativo, <code>target</code> sarà impostato all'ultimo elemento dell'array.</dd> - <dd>Se <code>target</code> è pari o più grande di <code>arr.length</code>, non sarà copiato nulla. Se <code>target</code> è posizionato dopo <code>start</code>, la sequenza copiata, sarà ritagliata per poter rientrare in <code>arr.length</code>.</dd> - <dt><code>start</code> {{optional_inline}}</dt> - <dd>Indice zero-based dal quale si comincia a copiare gli elementi. Se negativo, <code>start</code> comincerà a contare dalla fine.</dd> - <dd>Se <code>start</code> è omesso, <code>copyWithin</code> copierà dall'inizio (default 0).</dd> - <dt><code>end</code> {{optional_inline}}</dt> - <dd>Indice zero-based che indica l'ultimo indice dal quale copiare. <code>copyWithin</code> copia fino ad <code>end</code> ma non lo include. Se negativo, <code>end</code> sarà contato dalla fine.</dd> - <dd>Se <code>end</code> è omesso, <code>copyWithin</code> copierà fino alla fine (default <code>arr.length</code>).</dd> -</dl> - -<h3 id="Valore_di_ritorno">Valore di ritorno</h3> - -<p>L'array modificato.</p> - -<h2 id="Descrizione">Descrizione</h2> - -<p><code>copyWithin</code> ha le stesse funzionalità di <code>memmove</code> provenienti da C e C++, ed è un metodo molto performante per spostare i dati di un {{jsxref("Array")}}. Questa modifica si applica specialmente a {{jsxref("TypedArray/copyWithin", "TypedArray")}} metodo con lo stesso nome. La sequenza è copiata e incollata come una singola operzione; la sequenza incollata avrà i valori copiati anche se essi si sovrappongono.</p> - -<p>La funzione <code>copyWithin</code> è intenzionalmente<em> generic</em>, e non richiede che i suoi argomenti siano {{jsxref("Array")}} object.</p> - -<p><code>copyWithin</code> è un metodo mutabile. Non altera la lunghezza di <code>this</code>, ma cambia il suo contenuto e crea nuove proprietà se necessario..</p> - -<h2 id="Esempi">Esempi</h2> - -<pre class="brush: js">[1, 2, 3, 4, 5].copyWithin(-2); -// [1, 2, 3, 1, 2] - -[1, 2, 3, 4, 5].copyWithin(0, 3); -// [4, 5, 3, 4, 5] - -[1, 2, 3, 4, 5].copyWithin(0, 3, 4); -// [4, 2, 3, 4, 5] - -[1, 2, 3, 4, 5].copyWithin(-2, -3, -1); -// [1, 2, 3, 3, 4] - -[].copyWithin.call({length: 5, 3: 1}, 0, 3); -// {0: 1, 3: 1, length: 5} - -// ES2015 Typed Arrays are subclasses of Array -var i32a = new Int32Array([1, 2, 3, 4, 5]); - -i32a.copyWithin(0, 2); -// Int32Array [3, 4, 5, 4, 5] - -// On platforms that are not yet ES2015 compliant: -[].copyWithin.call(new Int32Array([1, 2, 3, 4, 5]), 0, 3, 4); -// Int32Array [4, 2, 3, 4, 5] -</pre> - -<h2 id="Polyfill">Polyfill</h2> - -<pre><code>if (!Array.prototype.copyWithin) { - Array.prototype.copyWithin = function(target, start/*, end*/) { - // Steps 1-2. - if (this == null) { - throw new TypeError('this is null or not defined'); - } - - var O = Object(this); - - // Steps 3-5. - var len = O.length >>> 0; - - // Steps 6-8. - var relativeTarget = target >> 0; - - var to = relativeTarget < 0 ? - Math.max(len + relativeTarget, 0) : - Math.min(relativeTarget, len); - - // Steps 9-11. - var relativeStart = start >> 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 final = relativeEnd < 0 ? - Math.max(len + relativeEnd, 0) : - Math.min(relativeEnd, len); - - // Step 15. - var count = Math.min(final - from, len - to); - - // Steps 16-17. - var direction = 1; - - if (from < to && to < (from + count)) { - direction = -1; - from += count - 1; - to += count - 1; - } -</code> -<code> // Step 18. - while (count > 0) { - if (from in O) { - O[to] = O[from]; - } else { - delete O[to]; - } - - from += direction; - to += direction; - count--; - } - - // Step 19. - return O; - }; -}</code></pre> - -<h2 id="Specificazioni">Specificazioni</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Specification</th> - <th scope="col">Status</th> - <th scope="col">Comment</th> - </tr> - <tr> - <td>{{SpecName('ES2015', '#sec-array.prototype.copywithin', 'Array.prototype.copyWithin')}}</td> - <td>{{Spec2('ES2015')}}</td> - <td>Definizione iniziale.</td> - </tr> - <tr> - <td>{{SpecName('ES2016', '#sec-array.prototype.copywithin', 'Array.prototype.copyWithin')}}</td> - <td>{{Spec2('ES2016')}}</td> - <td> </td> - </tr> - <tr> - <td>{{SpecName('ESDraft', '#sec-array.prototype.copywithin', 'Array.prototype.copyWithin')}}</td> - <td>{{Spec2('ESDraft')}}</td> - <td> </td> - </tr> - </tbody> -</table> - -<h2 id="Compatibilità_browser">Compatibilità browser</h2> - -<div> -<div class="hidden">La tabella di compatibilità in questa pagina è generata mediante dati strutturati. Se vuoi contribuire ai dati, controlla <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> ed inviaci una pull request.</div> - -<p>{{Compat("javascript.builtins.Array.copyWithin")}}</p> -</div> - -<h2 id="Vedi_anche">Vedi anche</h2> - -<ul> - <li>{{jsxref("Array")}}</li> -</ul> |