1. 程式人生 > >JS中針對陣列操作總結:

JS中針對陣列操作總結:

一.陣列的建立:
1. var aObj=new Array([Size]);
2. var aObj=new Array(‘a’,’b’,’c’);
3.var aObj=[‘a’,’b’,’c’]; (直接定義法)
注:var aObj=[,,]; //陣列中有兩個元素,undefined

二.陣列的元素新增和刪除:
1.棧操作:push()、pop()方法從陣列末尾增加和減少一個或多個元素;
2.佇列操作:shift()方法從陣列首部移出一個元素,push()方法從陣列末尾插入一個元素;
unshift()方法從陣列的首部插入一個元素; 注:以上這些方法都會更改陣列的長度。


3.使用delete運算子刪除陣列元素:

a=[1,2,3];
delete a[1];   //陣列a在索引1處不在有元素
1 in a         //false
a.length       //3,不影響陣列長度,即長度不變

(此方法刪除陣列元素類似於賦值為undefined)
三.陣列的擷取和合並:
1.擷取: aObj.slice(start, [end]);
注:(引數說明:引數為索引,取前不取後;索引為負數,則從倒[後]數計;)

   var a=[1,2,3,4,5];
     a.slice(3);   //[4,5]
     a.slice(1
,-1); //[2,3,4] a.slice(-3,-1); //[3,4]

2.合併: aObj.concat(item1,item2,item3。。。);
該方法只合並元素,併入到一個數組中:

var a=[1,2,3];
    a.concat([4,5],[6,7])    //[1,2,3,4,5,6,7]
    a.concat(4,[5,[6,7]])    //[1,2,3,4,5,[6,7]]

四、陣列元素的排序
aObj.reverse(); //反轉元素(最前的排到最後、最後的排到最前),返回陣列地址

aObj.sort(); //對陣列元素排序,返回陣列地址

aObj.sort(function(a,b){return a-b;})    //按照升序排列
aObj.sort(function(a,b){return b-a;})    //按照降序排列

五、陣列元素的字串化
aObj.join(separator); //返回字串,這個字串將陣列的每一個元素值連線在一起,中間用 separator 隔開。

toLocaleString 、toString 、valueOf:可以看作是join的特殊用法,不常用。

六、將字串變為陣列:
使用split方法:

 str = “s-aaa-sss-eee-www”;
 targetArr = str.split(“-”);    //[‘s’,’aaa’,’sss’,’eee’,’www’]

七、強大的陣列操作方法
splice( para1,para2,val1,val2… ):項陣列中新增和刪除項,para1表示起始位置索引,para2表示刪除的個數,後面的變量表示要新增的項的值,注 意是從para1處開始刪除和新增的。

    注意 : 引數為負數的問題,如果para1為負數,則會從陣列結尾處計算,而para2為負數或0的話不會執行刪除操作。

    var a=[1,2,3,4];
    console.log(a.splice(-2,1,'a','b'));  //[3]
    console.log(a);    //[1, 2, "a", "b", 4]
    console.log(a.splice(1,2,[1,2],3));   //[2, "a"]
    console.log(a);     //[1, [1,2], 3, "b", 4]

八.map方法:通過指定函式處理陣列的每個元素,並返回處理後的陣列。
    array.map(function(currentValue,index,arr), thisValue)
   
九.reduce()方法:接收一個函式作為累加器,陣列中的每個值(從左到右)開始縮減,最終計算為一個值。 reduce() 對於空陣列是不會執行回撥函式的。
十.every()和some()方法的使用。
fill() 方法用於將一個固定值替換陣列的元素。
array.fill(value, start, end)