位置交换
/**
* @param {any[]} arr - 原始数组。
* @param {number} fromIndex - 当前元素所在位置索引。
* @param {number} toIndex - 移动到交换的位置索引。
* @returns {any[]} 返回修改后的数组。
*/
const swapItem = function(arr, fromIndex, toIndex) {
arr[toIndex] = arr.splice(fromIndex, 1, arr[toIndex])[0];
return arr;
};
上移
const moveUpItem = function(arr, index) {
if(index === 0) {
return;
}
swapItem(arr, index, index - 1);
};
下移
const moveDownItem = function(arr, index) {
if(index === arr.length - 1) {
return;
}
swapItem(arr, index, index + 1);
};
移动至首位
const moveItemToFirst = function(arr, fromIndex) {
let item;
for (let i = 0; i < arr.length; i++) {
item = arr[i];
if (i === fromIndex) {
arr.splice(i, 1);
break;
}
}
arr.unshift(item);
}
排序移动
const moveItem = function(arr, fromIndex, toIndex) {
for (let i = 0; i < arr.length; i++) {
let item = arr[i];
if (i == fromIndex) {
arr.splice(i, 1);
arr.splice(toIndex, 0, item);
break;
}
}
return arr;
}