unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。
shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。
splice() 方法可删除从 index 处开始的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素。

一、两个元素换位子

  1. function swapArr(arr, index1, index2) {
  2. arr[index1] = arr.splice(index2, 1, arr[index1])[0];
  3. return arr;
  4. }

二、置顶移动

  1. function toFirst(fieldData,index) {
  2. if(index!=0){
  3. // fieldData[index] = fieldData.splice(0, 1, fieldData[index])[0]; 这种方法是与另一个元素交换了位子,
  4. fieldData.unshift(fieldData.splice(index , 1)[0]);
  5. }

三、up 上移动一格

  1. function upGo(fieldData,index){
  2. if(index!=0){
  3. fieldData[index] = fieldData.splice(index-1, 1, fieldData[index])[0];
  4. }else{
  5. fieldData.push(fieldData.shift());
  6. }
  7. }

四、down 下移动一格

  1. function downGo(fieldData,index) {
  2. if(index!=fieldData.length-1){
  3. fieldData[index] = fieldData.splice(index+1, 1, fieldData[index])[0];
  4. }else{
  5. fieldData.unshift( fieldData.splice(index,1)[0]);
  6. }
  7. }

文章:https://www.joynop.com/p/174.html