Array.move.js
Сводка
Перемещает элементы в массиве, возвращая массив, содержащий перемещенные элементы.
Синтаксис
array.move(index, howMany, toIndex);
Параметры
index : индекс для перемещения элементов.Если отрицательное значение, index начнется с конца.
howMany : Количество элементов для перемещения из index .
toIndex : Индекс массива для размещения перемещенных элементов.Если отрицательный, toIndex начнется с конца.
Использование
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;
}
});