在JavaScript中,我們需要時常對數組進行操作,現在特将常用方法總結如下:
1.增加資料
在JavaScript為數組增加資料主要分為兩種方式。
從數組末尾增加内容:push方法
從數組的前端增加内容:unshift方法
這兩種方法的傳回值都是數組的長度
var arr=[1,2,3];
//從末尾增加
arr.push(4);
console.log(arr);//[1,2,3,4]
//從前端增加
arr.unshift(0);
console.log(arr);//[0,1,2,3,4]
2.删除資料
和增加資料一樣,删除資料和主要分為兩種方式。
從數組末尾增加内容:pop方法
從數組的前端增加内容:shift方法
這兩種方法的傳回值都是删除的資料
var arr=[1,2,3];
//從末尾删除
arr.pop();
console.log(arr);//[1,2]
//從前端删除
arr.unshift();
console.log(arr);//[2]
3.從指定位置删除和增加資料
splice(startIndex,deleteCount,addValue1,addValue2...):從數組的startIndex位置開始,删除deleteCount個資料,然後在插入addValue1,addValue2等,傳回值是被删除的數組所組成的數組。
var arr=[1,2,3,4,5];
var deleteArr=arr.splice(1,2,8,9);
console.log(deleteArr);//[2,3]
console.log(arr);//[1,8,9,4,5]
從上面所知,數組的删除方法傳回的都是被删除的内容,增加的方法傳回的都是數組改變後的長度。
4.反序數組
reverse():将數組内容逆序。
var arr=[1,2,3];
arr.reverse();
console.log(arr);//[3,2,1]
5.将數組内容組成一個有特定分隔符的字元串
join(seperator):将數組内容組成一個字元串,内容以seperator分隔
var arr=[1,2,3];
arr.join(',');
console.log(arr);//1,2,3
6.合并兩個數組
concat():合并數組并傳回一個新的數組,不影響原有數組。
var arr1=[1,2,3];
var arr2=[4,5,6];
var newArr=arr1.concat(arr2);
console.log(arr1);//[1,2,3]
console.log(arr2);//[4,5,6]
console.log(newArr);//[1,2,3,4,5,6]
7.數組排序
sort():預設将數組進行數字或字母進行升序排序,但也可以自定義降序排序
var arr=[3,5,1];
arr.sort();
console.log(arr);//[1,3,5];
//指定降序
var arr1=[4,2,7];
arr1.sort(function(a,b){
return b-a;
})
console.log(arr1);//[7,4,2]
8.截取子數組
slice(startIndex,endIndex):截取數組中從startIndex到endIndex之間的内容,不包括endIndex所在位置的内容組成一個新的數組
var arr=[1,2,3,4,5,6];
var newArr=arr.slice(1,3);
console.log(arr);//[1,2,3,4,5,6]
console.log(newArr);//[2,3]
9.判斷給定資料在數組中的位置
indexOf(data):該方法傳回data在該數組中所在的第一個元素位置,如果沒有找到就傳回-1
var arr=[1,2,3];
var loc=arr.indexOf(1);
console.log(loc);//0
var newLoc=arr.indexOf(4);
console.log(newLoc);//-1
10.疊代器
數組的疊代器方法很多。
a.普通的周遊數組:forEach(function(value,index,arr){}),其中index是索引,value是值,arr就是數組本身
var arr=[1,2,3];
//index是索引,value是值
arr.forEach(function(value,index,arr){
console.log(''index:"+index+" "+"value:"+value)
})
b.過濾數組:filter(),根據過濾條件過濾數組,但不會改變原有數組
var arr=[1,2,3,4];
//傳回數組中大于2的内容
var newArr=arr.filter(function(item){
return item>2;
})
console.log(arr);//[1,2,3,4]
console.log(newArr);//[3,4]
c.映射數組:map(),對數組每個元素進行一定映射後,傳回一個新數組,不會改變原有數組
var arr=[1,2,3,4];
//将數組每個值擴大一倍
var newArr=arr.map(function(item){
return item*2;
});
console.log(arr);//[1,2,3,4]
console.log(newArr);//[2,4,6,8]