| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Array/copyWithin | [Back] [Original] |
Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.
Diese Funktion ist gut etabliert und funktioniert auf vielen Gerten und in vielen Browserversionen. Sie ist seit September 2015 browserbergreifend verfgbar.
Die copyWithin() Methode von Array Instanzen kopiert flach einen Teil dieses Arrays an eine andere Stelle im selben Array und gibt dieses Array zurck, ohne seine Lnge zu ndern.
const array = ["a", "b", "c", "d", "e"];
// Copy to index 0 the element at index 3
console.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 end
console.log(array.copyWithin(1, 3));
// Expected output: Array ["d", "d", "e", "d", "e"]
copyWithin(target, start)
copyWithin(target, start, end)
targetNullbasierter Index, an dem die Sequenz hingekopiert werden soll, in eine ganze Zahl umgewandelt. Dies entspricht der Stelle, an die das Element bei start kopiert wird, und alle Elemente zwischen start und end werden an aufsteigende Indizes kopiert.
-array.length <= target < 0, wird target + array.length verwendet.target < -array.length, wird 0 verwendet.target >= array.length, wird nichts kopiert.target nach der Normalisierung hinter start positioniert ist, erfolgt das Kopieren nur bis zum Ende von array.length (in anderen Worten, copyWithin() erweitert das Array nie).startNullbasierter Index, ab dem Elemente kopiert werden, in eine ganze Zahl umgewandelt.
-array.length <= start < 0, wird start + array.length verwendet.start < -array.length, wird 0 verwendet.start >= array.length, wird nichts kopiert.end OptionalNullbasierter Index, an dem das Kopieren der Elemente endet, in eine ganze Zahl umgewandelt. copyWithin() kopiert bis zu, aber nicht einschlielich end.
-array.length <= end < 0, wird end + array.length verwendet.end < -array.length, wird 0 verwendet.end >= array.length oder end weggelassen oder undefined ist, wird array.length verwendet, wodurch alle Elemente bis zum Ende kopiert werden.end eine Position vor oder an der Stelle bedeutet, die start anzeigt, wird nichts kopiert.Das modifizierte Array.
Die copyWithin() Methode arbeitet wie memmove in C und C++ und ist eine leistungsstarke Methode, um die Daten eines Array zu verschieben. Dies gilt insbesondere fr die TypedArray Methode mit demselben Namen. Die Sequenz wird in einem Vorgang kopiert und eingefgt; die eingefgte Sequenz wird die kopierten Werte haben, selbst wenn sich die Kopier- und Einfgebereiche berlappen.
Da undefined bei der Umwandlung in eine ganze Zahl zu 0 wird, hat das Weglassen des start Parameters denselben Effekt wie das bergeben von 0, 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 Sie 0 ausdrcklich als start bergeben.
console.log([1, 2, 3, 4, 5].copyWithin(2));
// [1, 2, 1, 2, 3]; move all elements to the right by 2 positions
Die copyWithin() Methode ist eine mutierende Methode. Sie verndert nicht die Lnge von this, aber sie ndert den Inhalt von this und erstellt bei Bedarf neue Eigenschaften oder lscht vorhandene Eigenschaften.
Die copyWithin() Methode bewahrt leere Pltze. Wenn der zu kopierende Bereich sprlich ist, werden die entsprechenden neuen Indizes der leeren Pltze gelscht und ebenfalls zu leeren Pltzen.
Die copyWithin() Methode ist generisch. Sie erwartet nur, dass der this Wert eine length Eigenschaft und integer-gekrzte Eigenschaften besitzt. Obwohl Zeichenfolgen ebenfalls array-hnlich sind, eignet sich diese Methode nicht dafr, auf sie angewendet zu werden, da Zeichenfolgen unvernderlich sind.
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() wird leere Pltze propagieren.
console.log([1, , 3].copyWithin(2, 1, 2)); // [1, empty, empty]
Die copyWithin() Methode liest die length Eigenschaft von this und bearbeitet dann die beteiligten integer-Indices.
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
| Spezifikation |
|---|
| ECMAScript 2027 LanguageSpecification # sec-array.prototype.copywithin |
Array.prototype.copyWithin in core-jsArray.prototype.copyWithinArrayTypedArray.prototype.copyWithin()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/FunctionDer Bauplan fr ein besseres Internet.
Teile dieses Inhalts sind 19982026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfgbar unter einer Creative-Commons-Lizenz.
| Web Proxy Viewer | New URL | Original Page |