更换数组中2个元素的位置

js 中通过splice实现数组中2个元素的位置更换

  • 方法1
function move(index1, index2, arr) {
    //index1 index2 需要更换的下标
    arr.splice(index1, 1, ...arr.splice(index2, 1, arr[index1]))
    return arr
}
  • 方法2
function move(index1, index2, arr) {
    let a = arr.splice(index1, 1, arr[index2])
    arr.splice(index2, 1, ...a)
    
    return arr
}

方法1, 2 原理相同,只是方法2 更好理解

使用unshift实现将某元素移动到数组最前面

function moveFirst(index, arr){
   return arr.unshift(arr.splice(index, 1))
}

实现思路,将该元素删除然后再将其加入到数组顶部

使用push 将某元素移动到数组末尾

function moveEnd(index, arr){
    return arr.push(arr.splice(index, 1))
}

实现思路同移动到顶部,删除需要移动的元素,通过push加入到末尾

posted @ 2021-11-08 17:34  boyyang  阅读(498)  评论(0编辑  收藏  举报
//黑猫咪:https://unpkg.com/live2d-widget-model-hijiki@1.0.5/assets/hijiki.model.json //白猫咪:https://unpkg.com/live2d-widget-model-tororo@1.0.5/assets/tororo.model.json //萌娘:https://unpkg.com/live2d-widget-model-shizuku@1.0.5/assets/shizuku.model.json //狗狗:https://unpkg.com/live2d-widget-model-wanko@1.0.5/assets/wanko.model.json //萌妹1号:https://unpkg.com/live2d-widget-model-z16@1.0.5/assets/z16.model.json //萌妹2号:https://unpkg.com/live2d-widget-model-koharu@1.0.5/assets/koharu.model.json //萌妹3号:https://unpkg.com/live2d-widget-model-hibiki@1.0.5/assets/hibiki.model.json //妹子4号:https://unpkg.com/live2d-widget-model-izumi@1.0.5/assets/izumi.model.json //妹子5号:https://unpkg.com/live2d-widget-model-miku@1.0.5/assets/miku.model.json //6号:https://unpkg.com/live2d-widget-model-nico@1.0.5/assets/nico.model.json //7号:https://unpkg.com/live2d-widget-model-ni-j@1.0.5/assets/ni-j.model.json //8号:https://unpkg.com/live2d-widget-model-nipsilon@1.0.5/assets/nipsilon.model.json //9号:https://unpkg.com/live2d-widget-model-nito@1.0.5/assets/nito.model.json //10号:https://unpkg.com/live2d-widget-model-tsumiki@1.0.5/assets/tsumiki.model.json //11号:https://unpkg.com/live2d-widget-model-unitychan@1.0.5/assets/unitychan.model.json //帅哥1号:https://unpkg.com/live2d-widget-model-chitose@1.0.5/assets/chitose.model.json //帅哥2号:https://unpkg.com/live2d-widget-model-haruto@1.0.5/assets/haruto.model.json