定義數(shù)組:
- 構(gòu)造函數(shù)
var arr1 = new Array(5);//長度為5的空數(shù)組
var arr2 = new Array(1,5);//[1,5]
- 字面量
var arr1 = [];
var arr2 = [1,2,3,4];
數(shù)組的長度 arr.length
數(shù)組的方法:
- 基本方法(添加,刪除,修改)
var arr = [1,2,3];
arr[3] = 4;//添加
arr;//[1,2,3,4]
delete a[0];//刪除
arr;//[undefined,2,3,4]
arr[1] = 5;//修改
arr;//[undefined,5,3,4]
棧方法
pop()去掉數(shù)組中的最后一位元素,并返回該元素
var arr = [1,2,3,4];
arr.pop();//4
arr;//[1,2,3]
- push(e)在數(shù)組的最后一位添加新元素,返回push后數(shù)組的長度
var arr = [1,2,3,4];
arr.push(5,6);//6
/*
arr[arr.length] = 5;
arr[arr.length] = 6;
*/
arr;//[1,2,3,4,5,6]
- shift()去掉數(shù)組中的第一位元素,并返回該元素
var arr = [1,2,3,4];
arr.shift();//1
arr;//[2,3,4]
- unshift(e)在數(shù)組的第一位添加新元素,返回unshift后數(shù)組的長度
var arr = [1,2,3,4];
arr.unshift(-1,0);//6
/*
arr[0] = 0;
arr[0] = -1;
*/
arr;//[-1,0,1,2,3,4]
splice(start,length,new)可以添加、刪除、任何位置
刪除,返回被刪除的元素的數(shù)組
var arr = [1,2,3,4,5];
arr.splice(1,3);//[2,3,4]
arr;//[1,5]
- 添加,返回被刪除的元素的數(shù)組
var arr = [1,2,3,4,5];
arr.splice(1,0,3);//[]
arr;//[1, 3, 2, 3, 4, 5]
- join(s)把數(shù)組連成字符串,返回的是字符串。原數(shù)組不變
var arr = [1,2,3,4];
arr.join('-');//'1-2-3-4'
arr.join('');'1234'
- slice(satrt,end)淺復(fù)制數(shù)組中的子片段,并返回;原數(shù)組不變
var arr = [1,2,3,4,5];
arr.slice(1,3);//[2,3]
arr;//[1,2,3,4,5]
- concat(arr)拼接數(shù)組,返回新的數(shù)組
var arr1 = [1,2,3,4],
arr2 = [5,6,7];
arr1.concat(arr2);//[1,2,3,4,5,6,7]
- reverse()把一個(gè)數(shù)組逆序,并返回
var arr = [1,2,3];
arr.reverse();//[3,2,1]
arr;//[3,2,1]
- sort()把數(shù)組按照字符串進(jìn)行排序
var arr = [1,2,31,100,256];
arr.sort();//[1,100,2,256,31]
可以重寫該方法
var arr = [1,2,31,100,256];
arr.sort(function(a,b){
return a-b;//a-b>0,則調(diào)換
});
ES5中數(shù)組的拓展
- Array.isArray(arr)判斷一個(gè)對象是不是數(shù)組
var arr = [];
Array.isArray(arr);//true;
/*
//滿足這兩點(diǎn)的,也一定是數(shù)組
typeof arr;//'object'
arr instanceof Array;//true
*/
indexOf(e) lastIndexOf(e)
indexOf(e)查找元素的位置,找不到返回-1
var arr = [1,2,3,3,2,1];
arr.indexOf(2);//1
- lastIndexOf(e)反向開始查找
var arr = [1,2,3,3,2,1];
arr.lastIndexOf(2);//4
- forEach(ele,index,array)用于遍歷數(shù)組(array是原數(shù)組本身)
var arr = [1,2,3,4,5];
arr.forEach(function(ele,index,array){
array[index] = ele +1;
});
arr;//[2,3,4,5,6]
- every(function(ele,index,array){}) some(function(ele,index,array){})
- every(function(ele,index,array){})每個(gè)結(jié)果都滿足,返回true
var arr = [1,2,3,4,5];
arr.every(function(e,i,a){
return e > 0;
});//true
- some(function(ele,index,array){})有滿足條件的,就返回true
var arr = [1,2,3,4,5];
arr.some(function(e,i,a){
return e > 3;
});//true
- map(function(ele){})遍歷數(shù)組,返回新數(shù)組
var arr = [1,2,3];
/*map基于原數(shù)組操作*/
arr.map(function(e){
return e*e;
});//[1,4,9]
arr;//[1,2,3]
- filter(function(e){})挑選出滿足條件的,返回新的數(shù)組
var arr = [1,2,3,4,5];
arr.filter(function(ele){
return ele > 2;
});[3,4,5]
arr;//[1,2,3,4,5]
返回?cái)?shù)組的:
splice(start,length,new)
slice(satrt,end)
concat(arr)
reverse()
sort()
返回字符串的:
join(s)
返回位置的:
indexOf(e)
lastIndexOf(e)
遍歷數(shù)組
forEach(ele,index,array)
every(function(ele,index,array){}) some(function(ele,index,array){})
map(function(ele){})
filter(function(e){})