Array.move.js
Zusammenfassung
Verschiebt Elemente innerhalb eines Arrays und gibt ein Array zurück, das die verschobenen Elemente enthält.
Syntax
array.move(index, howMany, toIndex);
Parameter
Index : Index, bei dem Elemente verschoben werden sollen. Falls negativ, Index wird vom Ende her beginnen.
howMany : Anzahl der zu verschiebenden Elemente von Index .
toIndex : Index des Arrays, an dem die verschobenen Elemente platziert werden sollen. Falls negativ, toIndex wird vom Ende her beginnen.
Verwendung
array = ["a", "b", "c", "d", "e", "f", "g"];
array.move(3, 2, 1); // returns ["d","e"]
array; // returns ["a", "d", "e", "b", "c", "f", "g"]
Polyfill
Array.prototype.move || Object.defineProperty(Array.prototype, "move", {
value: function (index, howMany, toIndex) {
var
array = this,
index = parseInt(index) || 0,
index = index < 0 ? array.length + index : index,
toIndex = parseInt(toIndex) || 0,
toIndex = toIndex < 0 ? array.length + toIndex : toIndex,
toIndex = toIndex <= index ? toIndex : toIndex <= index + howMany ? index : toIndex - howMany,
moved;
array.splice.apply(array, [toIndex, 0].concat(moved = array.splice(index, howMany)));
return moved;
}
});
0 Stimmen
ES6 verwenden
const changeValuePosition = (arr, init, target) => {[arr[init],arr[target]] = [arr[target],arr[init]]; return arr}
5 Stimmen
Das vertauscht einfach die Elemente bei
init
ytarget
.0 Stimmen
@user4945014 Es geht nicht nur um den Tausch. Wenn eine Vertauschung stattfindet, würde der OP array = ['a', 'd', 'c', 'b', 'e'] erhalten, was bedeuten würde, dass 'c' und 'b' in der falschen Reihenfolge wären. Ein Insert und Shift, wie er es sucht, hält 'b' und 'c' in der gleichen Reihenfolge.