JavaScript陣列方法總結(中)

mug發表於2021-09-09

JavaScript中提供了多種陣列方法,如下:

  1. 轉換方法—toLocaleString()方法、toString()方法、valueOf()方法
  2. 棧方法——push()方法、pop()方法
  3. 佇列方法——shift()方法、unshift()方法
  4. 重排序方法——reverse()方法、sort()方法
  5. 操作方法——concat()方法、slice()方法、splice()方法
  6. 位置方法——indexOf()方法、lastIndexOf()方法
  7. 迭代方法——every()方法、filter()方法、forEach()方法、map()方法、some()方法
  8. 歸併方法——reduce()方法、reduceRight()方法
    重排序方法:

①:reverse()方法可以反轉陣列項的順序
②:sort()方法對陣列進行升序排序,但sort()方法會呼叫每個陣列項的toString()轉型方法,所以sort()方法比較的是字串,所以為了能正確排序,要將一個排序函式作為引數傳給sort()方法。
具體例子如下:

//reverse()方法
var values=[0,1,5,10,15];
values.reverse();
console.log(values);    //15,10,5,1,0

//無引數sort()方法
values.sort();
console.log(values);    //0,1,10,15,5

//將比較函式作為引數傳給sort()方法
//此比較函式用於數值型別或者其valueOf()方法會返回數值型別的物件型別
function compare(value1,value2){
    return value1-value2;    //升序,若要降序則return value2-value1;
}
values.sort(compare);
console.log(values);    //0,1,5,10,15

//使用另外一種比較函式一樣可以解決,並適用於大多數資料型別
function compare2(value1,value2){
    if(value1value2){
        return 1;
    }
    else{
        return 0;
    }
}
values.sort(compare2);
console.log(values);    //0,1,5,10,15
//用字串資料型別檢驗
var colors=["red","blue","green","black"];
colors.sort(compare2);
console.log(colors);    //black,blue,green,red

colors.sort(compare);
cosole.log(colors);    //返回原函式,不進行排序

操作方法:

①:concat()方法用於連線兩個或多個陣列,不改變現有陣列,只是返回被連線陣列的一個副本
②:slice()方法能基於當前陣列中的一個或多個項建立一個陣列,接受一個或兩個引數,即返回項的開始跟結束位置
③:splice()方法,(返回陣列)使用這種方法的方式有三種,如下:

若要刪除的項數為0,則返回空陣列;若不為0,則返回由被移除項所組成的陣列

  • 刪除:可以刪除任意數量的項,只需指定兩個引數,要刪除的第一項和要刪除的項數
  • 插入:可以向指定位置插入任意數量的項:只需指定三個引數,起始位置、0(要刪除的項數)、要插入的項
  • 替換:可以向指定位置插入任意數量的項,且同時刪除任意數量的項,只需指定三個引數,起始位置、要刪除的項數和要插入的任意數量的項

具體例子如下:

//刪除
var colors=["red","green","blue"];
var removed=colors.splice(0,1);    //刪除colors陣列0的位置的項
console.log(colors);    //green,blue
console.log(removed);    //red,返回陣列只包含一項

//插入
removed=colors.splice(1,0,"yellow","orange");    //從colors陣列1的位置插入兩項
console.log(colors);    //green,yellow,orange,blue
cosole.log(removed);    //因為刪除項數為0,所以返回空陣列

//替換
removed=colors.splice(1,1,"red","purple");    //刪除colors陣列1的位置的項,並在此插入兩項
console.log(colors);    //green,red,purple,orange,blue
console.log(removed);    //yellow,返回陣列只包含一項

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/506/viewspace-2807575/,如需轉載,請註明出處,否則將追究法律責任。

相關文章