Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. JavaScript
  3. JavaScript-Referenz
  4. Eingebaute Standardobjekte
  5. Array
  6. copyWithin()

Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.

View in EnglishAlways switch to English

Array.prototype.copyWithin()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨September 2015⁩.

DiecopyWithin() Methode vonArray Instanzen kopiert flach einen Teil dieses Arrays an eine andere Stelle im selben Array und gibt dieses Array zurück, ohne seine Länge zu ändern.

Probieren Sie es aus

const array = ["a", "b", "c", "d", "e"];// Copy to index 0 the element at index 3console.log(array.copyWithin(0, 3, 4));// Expected output: Array ["d", "b", "c", "d", "e"]// Copy to index 1 all elements from index 3 to the endconsole.log(array.copyWithin(1, 3));// Expected output: Array ["d", "d", "e", "d", "e"]

Syntax

js
copyWithin(target, start)copyWithin(target, start, end)

Parameter

target

Nullbasierter Index, an dem die Sequenz hingekopiert werden soll,in eine ganze Zahl umgewandelt. Dies entspricht der Stelle, an die das Element beistart kopiert wird, und alle Elemente zwischenstart undend werden an aufsteigende Indizes kopiert.

  • Ein negativer Index zählt vom Ende des Arrays zurück — wenn-array.length <= target < 0, wirdtarget + array.length verwendet.
  • Wenntarget < -array.length, wird0 verwendet.
  • Wenntarget >= array.length, wird nichts kopiert.
  • Wenntarget nach der Normalisierung hinterstart positioniert ist, erfolgt das Kopieren nur bis zum Ende vonarray.length (in anderen Worten,copyWithin() erweitert das Array nie).
start

Nullbasierter Index, ab dem Elemente kopiert werden,in eine ganze Zahl umgewandelt.

  • Ein negativer Index zählt vom Ende des Arrays zurück — wenn-array.length <= start < 0, wirdstart + array.length verwendet.
  • Wennstart < -array.length, wird0 verwendet.
  • Wennstart >= array.length, wird nichts kopiert.
endOptional

Nullbasierter Index, an dem das Kopieren der Elemente endet,in eine ganze Zahl umgewandelt.copyWithin() kopiert bis zu, aber nicht einschließlichend.

  • Ein negativer Index zählt vom Ende des Arrays zurück — wenn-array.length <= end < 0, wirdend + array.length verwendet.
  • Wennend < -array.length, wird0 verwendet.
  • Wennend >= array.length oderend weggelassen oderundefined ist, wirdarray.length verwendet, wodurch alle Elemente bis zum Ende kopiert werden.
  • Wennend eine Position vor oder an der Stelle bedeutet, diestart anzeigt, wird nichts kopiert.

Rückgabewert

Das modifizierte Array.

Beschreibung

DiecopyWithin() Methode arbeitet wiememmove in C und C++ und ist eine leistungsstarke Methode, um die Daten einesArray zu verschieben. Dies gilt insbesondere für dieTypedArray Methode mit demselben Namen. Die Sequenz wird in einem Vorgang kopiert und eingefügt; die eingefügte Sequenz wird die kopierten Werte haben, selbst wenn sich die Kopier- und Einfügebereiche überlappen.

Daundefined bei der Umwandlung in eine ganze Zahl zu0 wird, hat das Weglassen desstart Parameters denselben Effekt wie das Übergeben von0, was das gesamte Array an die Zielposition kopiert, entsprechend einem Rechtsverschieben, wobei die rechte Grenze abgeschnitten und die linke Grenze dupliziert wird. Dieses Verhalten kann Leser Ihres Codes verwirren, daher sollten Sie0 ausdrücklich alsstart übergeben.

js
console.log([1, 2, 3, 4, 5].copyWithin(2));// [1, 2, 1, 2, 3]; move all elements to the right by 2 positions

DiecopyWithin() Methode ist einemutierende Methode. Sie verändert nicht die Länge vonthis, aber sie ändert den Inhalt vonthis und erstellt bei Bedarf neue Eigenschaften oder löscht vorhandene Eigenschaften.

DiecopyWithin() Methode bewahrt leere Plätze. Wenn der zu kopierende Bereichspärlich ist, werden die entsprechenden neuen Indizes der leeren Plätzegelöscht und ebenfalls zu leeren Plätzen.

DiecopyWithin() Methode istgenerisch. Sie erwartet nur, dass derthis Wert einelength Eigenschaft und integer-gekürzte Eigenschaften besitzt. Obwohl Zeichenfolgen ebenfalls array-ähnlich sind, eignet sich diese Methode nicht dafür, auf sie angewendet zu werden, da Zeichenfolgen unveränderlich sind.

Beispiele

Verwendung von copyWithin()

js
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]

Verwendung von copyWithin() auf spärlichen Arrays

copyWithin() wird leere Plätze propagieren.

js
console.log([1, , 3].copyWithin(2, 1, 2)); // [1, empty, empty]

Aufruf von copyWithin() auf Nicht-Array-Objekten

DiecopyWithin() Methode liest dielength Eigenschaft vonthis und bearbeitet dann die beteiligten integer-Indices.

js
const arrayLike = {  length: 5,  3: 1,};console.log(Array.prototype.copyWithin.call(arrayLike, 0, 3));// { '0': 1, '3': 1, length: 5 }console.log(Array.prototype.copyWithin.call(arrayLike, 3, 1));// { '0': 1, length: 5 }// The '3' property is deleted because the copied source is an empty slot

Spezifikationen

Specification
ECMAScript® 2026 Language Specification
# sec-array.prototype.copywithin

Browser-Kompatibilität

Siehe auch

Help improve MDN

Learn how to contribute Diese Seite wurde automatisch aus dem Englischen übersetzt.

[8]ページ先頭

©2009-2025 Movatter.jp