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)