亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

1111122


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():兩個參數,第一個表示查找的元素,第二個表示查找的起點位置


? ?


正在回答

3 回答

總結得很到位。

0 回復 有任何疑惑可以回復我~

抱走啦!

0 回復 有任何疑惑可以回復我~

總結的不錯嘛


2 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
JavaScript深入淺出
  • 參與學習       281094    人
  • 解答問題       1054    個

由淺入深學習JS語言特性,且解析JS常見誤區,從入門到掌握

進入課程
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號