数组中元素上下移位(左右移位)
// 交换数组元素
const swapItems = (arr, index1, index2) => {
arr[index1] = arr.splice(index2, 1, arr[index1])[0];
return arr;
};
// 上移
const upRecord = (arr, $index) => {
if ($index == 0) {
return arr;
}
return swapItems(arr, $index, $index - 1);
};
// 下移
const downRecord = (arr, $index) => {
if ($index == arr.length - 1) {
return arr;
}
return swapItems(arr, $index, $index + 1);
};
// demo
let a = [
'测试1',
'测试2',
'test3',
'测试4',
'test5',
'测试6',
'测试7',
];
// 上移一位
const index = a.findIndex(item => item === 'test3')
const b = index !== -1 ? upRecord(a.slice(), index) : a;
// 下移一位
const index2 = a.findIndex(item => item === 'test5')
const c = index !== -1 ? downRecord(a.slice(), index2) : a;
console.log(a, index, b);
console.log(a, index2, c);