js改變數組的兩個元素的位子,互換、置頂

//js數組的元素上移和下移動

var fieldData=[

      {name:'id',value:'ID'}

    , {name:'username',value:'用戶名'}

    , {name:'email',value:'郵箱'}

    , {name:'sex',value:'性別'}

    , {name:'city',value:'城市'}

    , {name:'sign',value:'簽名'}

    , {name:'experience',value:'積分'}

    , {name:'ip',value:'IP'}

    , {name:'logins',value:'登入次數'}

    , {name:'joinTime',value:'加入時間'}

];

var index=9;

須知:

unshift() 方法可向數組的開頭添加一個或更多元素,並返回新的長度。

shift() 方法用於把數組的第一個元素從其中刪除,並返回第一個元素的值。

splice() 方法可刪除從 index 處開始的零個或多個元素,並且用參數列表中聲明的一個或多個值來替換那些被刪除的元素。

三種方法都會改變數組

1:兩個元素換位子;

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

2:置頂移動

function toFirst(fieldData,index) {

    if(index!=0){

        // fieldData[index] = fieldData.splice(0, 1, fieldData[index])[0]; 這種方法是與另一個元素交換了位子,

        fieldData.unshift(fieldData.splice(index , 1)[0]);

    }

}

 

3:up 上移動一格

function upGo(fieldData,index){

    if(index!=0){

        fieldData[index] = fieldData.splice(index-1, 1, fieldData[index])[0];

    }else{

        fieldData.push(fieldData.shift());

    }

}

4:down 下移動一格

function downGo(fieldData,index) {

    if(index!=fieldData.length-1){

        fieldData[index] = fieldData.splice(index+1, 1, fieldData[index])[0];

    }else{

        fieldData.unshift( fieldData.splice(index,1)[0]);

    }

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章