1.創(chuàng)建數(shù)組的方式
1.1字面量
var arr =[1,2,3]
1.2構(gòu)造函數(shù)(了解)
var arr = new Array();
2.檢測數(shù)組
if(arr instanceof Array){}
if(Array.isArray(arr)){}
3.數(shù)組的方法
-
3.1.1增加(改變數(shù)組的內(nèi)容)
- push() //從尾部添加
var arr =[1,2,3];
console.log(arr.push()); //3
var arr = [1,2,3];
arr.push(4);
console.log(arr); //1,2,3,4
- unshift() // 從頭部添加
var arr = [1,2,3];
arr.unshift(0);
alert(arr); //0,1,2,3
-
3.1.2增加 concat()(不改變原來數(shù)組內(nèi)容)
var arr = [1,2,3];
var b = arr.concat(4);
console.log(arr); //1,2,3
console.log(b); //1,2,3,4
var arr = [1,2,3];
var b = arr.concat(4);
console.log(arr); //1,2,3
console.log(b); //1,2,3,4
-
3.2刪除(改變)
不接收參數(shù)
- pop() //從尾部刪除
var arr = [1,2,3];
alert(arr.pop()); //3
alert(arr) //1,2
- shift() // 從頭部刪除
var arr = [1,2,3];
alert(arr.shift()); //1
alert(arr) //2,3
-
3.3修改,指定三個參數(shù)arrObject.splice(index,howmany,item)
//指定三個參數(shù):起始位置,刪除的項數(shù),插入的數(shù)量
var arr = [1,2,3,4,5];
arr.splice(0,2,6,7);
alert(arr); //6,7,4,5
-
3.4查詢
//arr[index] 查詢對應下標的值
var arr=[1,2,3];
console.log(arr[0]); //1;
//indexOf(value) 查詢對應值的下標
var arr=[1,2,3,4];
console.log(arr.indexOf(1)); //0
//如果沒有對應的值,則返回-1
//arrayObject.slice(start,end)
//1個參數(shù)
var arr=[1,2,3,4];
var b=arr.slice(1);
console.log(b); //2,3,4
//2個參數(shù)
var c = arr.slice(1,3);
console.log(c); //2,3
-
3.5splice(改變原來數(shù)組) 包含增,刪,改
//語法
arrayObject.splice(index,howmany,item1,.....,itemX)
a.增加,指定三個參數(shù)splice(index,howmany,item)
//splice(index,howmany,item)
//傳3個參數(shù)表示:起始位置赞哗、0(刪除的項數(shù))、插入的項在index之后
var arr= [1,2,3,4,5];
arr.splice(2,0,"red","green"); //在第2位之后,增加2個元素
console.log(arr); //[1,2,"red","green",3,4,5]
b.刪除,指定兩個參數(shù)splice(index,howmany)
//splice(index,howmany)
//傳2個參數(shù)表示:起始位置和刪除的個數(shù)
var arr = [1,2,3,4,5];
arr.splice(0,2); //從0位開始,刪除2個
alert(arr); //[3,4,5]
c.修改,指定三個參數(shù)splice(index,howmany,item)
//指定三個參數(shù):起始位置,刪除的項數(shù),插入的數(shù)量
var arr = [1,2,3,4,5];
arr.splice(0,2,6,7);
alert(arr); //6,7,4,5
-
3.6join
//通過指定分隔符,將數(shù)組所有元素放入字符串
arrayObject.join(separator)
var arr=["red","green","yellow"];
var a = arr.join(); //red,green,yellow
var b= arr.join(""); //redgreenyellow
var c=arr.join("."); //red.green.yello
alert(c);
-
3.7排序
function compare(a,b){
if(a<b){
return -1;
}else if(a>b){
return 1;
}else{
return 0;
}
}
var arr=[1,3,78,12,4];
arr.sort(compare);
console.log(arr); //1,3,4,12,78
arr.reverse();
console.log(arr); //78,12,4,3,1
-
3.8迭代方法
- 3.8.1 every():對數(shù)組的每一項運行給定函數(shù),如果該函數(shù)對每一項返回true,則返回true
var numbers = [1,2,3,4,5];
var everyResult = numbers.every(function(item,index,array){
return(item>2)
});
alert(everyResult); //false
- 3.8.2 some():對數(shù)組的每一項運行給定函數(shù),如果該函數(shù)對任意一項返回true,則返回true
var numbers = [1,2,3,4,5];
var someResult = numbers.some(function(item,index,array){
return(item>2)
});
alert(someResult); //true
- 3.8.3 filter()對數(shù)組中的每一項運行給定函數(shù),返回該函數(shù)會返回true的項組成的數(shù)組
var numbers = [1,2,3,4,5];
var filterResult = numbers.filter(function(item,index,array){
return (item>2);
});
alert(filterResult); //[3,4,5]
- 3.8.4 map()對數(shù)組中的每一項運行給定函數(shù),返回每次函數(shù)調(diào)用的結(jié)果組成的函數(shù)芝发。
var numbers = [1,2,3,4,5];
var mapResult = numbers.map(function(item,index,array){
return item*2;
});
alert(mapResult); //2,4,6,8,10
- 3.8.5 forEach()對數(shù)組中的每一項運行給定函數(shù)掺栅。這個方法沒有返回值
var numbers = [1,2,3,4,5];
numbers.forEach(function(item,index,array){
console.log(item);
});
-
3.9歸并(求和)方法
reduce()和reduceRight()這兩個方法都會迭代數(shù)組的所有項,然后構(gòu)建一個最終返回的值鳞贷。
區(qū)別:
前者從頭開始遍歷
后者從后開始遍歷
var numbers = [1,2,3,4,5];
var sum = numbers.reduce(function(prev,cur,index,array){
return prev+cur;
});
alert(sum); //15
var numbers = [1,2,3,4,5];
var sum = numbers.reduceRight(function(prev,cur,index,array){
return prev+cur;
});
alert(sum); //15