1)創建數組、數組的增刪改查
首先是數組的創建,有兩種方式:
var?arr?=?[1,2,3]; //以字面量的形式創建
var?arr?=?new?Array(1,2,3); //以構造函數的形式創建
其中第二種以構造函數的形式有兩種參數形式,第一種是直接傳入數組的元素,第二種則是傳入數組的length大小
數組創建好了,如何去增刪改查?
增加:棧方法里的push()或者unshift(),前者是表示從數組的后面插入,后者則是從數組的前面插入(老司機開車了-?-)
刪除:棧方法里的pop()或者shift(),跟上面一樣,前者是從數組的后面刪除,后者是從前面刪除,還有一種方法是Array.prototype.splice(),它有刪除功能,可以傳入兩個參數,第一個表示刪除的起點位置,第二個參數表示刪除的元素個數
修改:可以通過索引去修改值或者用上面說到的Array.prototype.splice(),它有替換功能,可以傳入三個參數,第一個表示刪除的起點位置,第二個參數表示刪除的元素個數,第三個參數表示替換的元素
查找:可以通過索引方法indexOf()或者lastIndexOf()去查找某個元素,方法有兩個參數,第一個表示要查找的元素,第二個參數可以指定查找的起點位置
2)數組方法
Array.prototype.join(sep)
將數組轉化為字符串,其中sep是分隔符,當sep沒傳入時默認的分隔符為逗號,如下:
var?arr?=?[1,2,3];
arr.join(); //"1,2,3"
arr.join("||"); //"1||2||3"
Array.prototype.sort()
數組排序方法,默認是按字母先后順序進行排列,如:
var?arr?=?["a","c","b"]; //["a","b","c"]
如果想要比較數字,則需要給sort傳入一個比較函數,如:
arr.sort(function(a,b){
?????return?a-b;
});
傳入的函數返回值若為負數則表示a排在b前面,若為正數則相反,所以當我們想要升序排序則return?a-b;若想要降序排序則return?b-a;
Array.prototype.reverse()
數組的倒序排序,沒什么好解釋的啦-?-
Array.prototype.concat()
數組的拼接方法,傳入的參數是我們想要跟數組拼接起來的數或者另外一個數組
當傳入數字或者數組時則附加到原數組的后面,當傳入數組時,如果數組里還有數組就不會進行二級的拼接,如下:
arr.concat(4,5); //[1,2,3,4,5]
arr.concat(4,5,[6,7]); //[1,2,3,4,5,6,7]
arr.concat(4,5,[6,[7,8]]); //[1,2,3,4,5,6,[7,8]]
PS:Array.prototype.concat()并不會影響原數組,只是會返回一個新的數組
Array.prototype.slice()
生成子數組方法,參數有兩個,第一個表示起始位置,第二個表示結束位置的后面一位,如:
var?arr?=?[1,2,3,4,5,6,7,8];
arr.slice(2,4); //[3,4]
PS:Array.prototype.slice()并不會影響原數組,只是會返回一個新的數組
Array.prototype.splice()
這個方法很強大,它能夠執行數組的刪除,替換,插入操作
刪除:傳入兩個參數,第一個表示起始位置,第二個表示從起始位置起刪除的元素個數
arr.splice(2,1); //[3]
替換:傳入三個參數,第一個表示起始位置,第二個表示從起始位置起刪除的元素個數,第三個則是要替換的元素
arr.splice(2,1,9); //[3]
插入:傳入三個參數,第一個表示起始位置,第二個表示從起始位置起刪除的元素個數(此處為0),第三個則是要插入的元素
arr.splice(2,0,10,11); //[]
PS:Array.prototype.splice()會影響原數組,返回一個刪除的元素數組
迭代方法:
Array.prototype.forEach():對數組的每一項運行給定函數,不返回值
Array.prototype.map():對數組的每一項運行給定函數,返回運行結果所組成的數組
Array.prototype.filter():對數組的每一項運行給定函數,返回運行結果為true所組成的數組
Array.prototype.every():對數組的每一項運行給定函數,當所有運行結果為true時才返回true
Array.prototype.some():對數組的每一項運行給定函數,當有運行結果為true時才返回true
歸并方法:
Array.prototype.reduce():從左到右對數組進行依次累積操作,返回最后的運行結果,如:
求數組的累加
var?arr?=?[1,2,3];
arr.reduce(function(x,y,index,arr){
?????return?x?+?y;
});
Array.prototype.reduceRight():從右到左對數組進行依次累積操作,返回最后的運行結果
var?arr?=?[1,2,3];
arr.reduceRight(function(x,y,index,arr){
?????return?x?+?y;
});
查找方法:
Array.prototype.indexOf():兩個參數,第一個表示查找的元素,第二個表示查找的起點位置
Array.prototype.lastIndexOf():兩個參數,第一個表示查找的元素,第二個表示查找的起點位置
2016-09-14
贊贊贊
2016-09-08
贊?。。?/p>