Javascript 移动数组元素的几个方法

Javascript 移动数组元素的几个自定义方法,包括元素位置交换、上移、下移、移动至首位、排序移动

位置交换

例如:arr = [1,2,3,4,5],将3与1交换swapItem(arr, 2, 0),结果是[3,2,1,4,5]

// fromIndex: 当前元素所在位置索引, toIndex: 移动到交换的位置索引
var swapItem = function(arr, fromIndex, toIndex) {
    arr[toIndex] = arr.splice(fromIndex, 1, arr[toIndex])[0];
    return arr;
};

上移

例如:arr = [1,2,3,4,5],将3上移moveUpItem(arr, 2),结果是[1,3,2,4,5]

// index: 当前元素索引
var moveUpItem = function(arr, index) {
    if(index == 0) {
        return;
    }
    swapItem(arr, index, index - 1);
};

下移

例如:arr = [1,2,3,4,5],将3下移moveDownItem(arr, 2),结果是[1,2,4,3,5]

var moveDownRecord = function(arr, index) {
    if(index == arr.length - 1) {
        return;
    }
    swapItem(arr, index, index + 1);
};

移动至首位

例如:arr = [1,2,3,4,5],将3移动至首位moveItemToFirst(arr, 2),结果是[3,1,2,4,5]

// fromIndex: 当前元素所在位置索引
var moveItemToFirst = function(arr, fromIndex) {
    var item;
    for (var k in arr) {
        item = arr[k];
        if (k == fromIndex) {
            arr.splice(k, 1);
            break;
        }
    }
    arr.unshift(item);
}

排序移动

例如:arr = [1,2,3,4,5],将3移动到末尾moveItem(arr, 2, 4),结果是[1,2,4,5,3]

// fromIndex: 当前元素所在位置索引, toIndex: 移动到指定索引
var moveItem = function(arr, fromIndex, toIndex) {
    for (var k in arr) {
        var item = arr[k];
        if (k == fromIndex) {
            arr.splice(k, 1);
            arr.splice(toIndex, 0, item);
            break;
        }
    }
    return arr;
}

如需转载,请注明出处: https://chadou.me/p/201

最新发布