世界不止0和1 還有...

目錄
陣列型別
1.宣告陣列
(1)創建陣列
(2)Array.of
(3)型別檢測
2.型別轉換
(1)字串
(2)Array.from
3.展開語法
(1)陣列合并
(2)函式引數
4.解構賦值
(1)基本使用
(2)嚴格模式
(3)簡潔定義
(4)默認值
(5)函式引數
5.管理元素
(1)基本使用
(2)擴展語法
(3)push
(4)pop
(5)shift
(6)unshift
(7)fill
(8)slice
(9)splice
(10)清空陣列
6.合并拆分
(1)join
(2)split
(3)concat
(4)copyWithin
7.查找元素
(1)indexOf
(2)lastIndexOf
(3)includes
(4)find
(5)findIndex
8.陣列排序
(1)reverse
(2)sort(默認從小于大排序陣列元素)
9.回圈遍歷
(1)for
(2)forEach
(3)for/in
(4)for/of
10.迭代器方法
(1)keys
11.values
(1)entries
12.擴展方法
(1)every
(2)some
(3)filter
(4)map
(5)reduce
陣列型別
1.宣告陣列
陣列是多個變數值的集合,陣列是Array 物件的實體,所以可以像物件一樣呼叫方法
(1)創建陣列
使用物件方式創建陣列

使用字面量創建是推薦的簡單作法
![]()
多維陣列定義

陣列是參考型別可以使用const宣告并修改它的值
使用原型的 length屬性可以獲取陣列元素數量

陣列可以設定任何值,下面是使用索引添加陣列
下面直接設定3號陣列,會將1/2索引的陣列定義為空值

宣告多個空元素的陣列

(2)Array.of
使用Array.of 與 new Array 不同是設定一個引數時不會創建空元素陣列 
(3)型別檢測
檢測變數是否為陣列型別
2.型別轉換
可以將陣列轉換為字串也可以將其他型別轉換為陣列,
(1)字串
.toString() 函式轉換為字串,
也可以使用函式 String 轉換為字串,
![]()
或使用join連接為字串
(2)Array.from
使用Array.from可將類陣列轉換為陣列,
類陣列指包含 length 屬性或可迭代的物件,
第一個引數為要轉換的資料,第二個引數為類似于map 函式的回呼方法
為物件設定length屬性后也可以轉換為陣列
但要下標為數值或數值字串
3.展開語法
(1)陣列合并
使用展開語法來合并陣列相比 concat 要更簡單,
使用... 可將陣列展開為多個值,

(2)函式引數
使用展示語法可以替代 arguments 來接收任意數量的引數

4.解構賦值
(1)基本使用
下面是基本使用語法

解構賦值陣列

剩余解構指用一個變數來接收剩余引數
(2)嚴格模式
非嚴格模式可以不使用宣告指令,嚴格模式下必須使用宣告,
所以建議使用 let 等宣告,

(3)簡潔定義
只賦值部分變數

使用展開語法獲取多個值
(4)默認值
為變數設定默認值

(5)函式引數
陣列引數的使用

5.管理元素
(1)基本使用
使用從0開始的索引來改變陣列

向陣列追回元素

(2)擴展語法
使用展示語法批量添加元素

(3)push
壓入元素,直接改變元陣列,回傳值為陣列元素數量

根據區間創建新陣列

(4)pop
從末尾彈出元素,直接改變元陣列,回傳值為彈出的元素

(5)shift
從陣列前面取出一個元素

(6)unshift
從陣列前面添加元素

(7)fill
使用fill 填充陣列元素

指定填充位置

(8)slice
使用 slice 方法從陣列中截取部分元素組合成新陣列(并不會改變原陣列),不傳第二個引數時截取到陣列的最后元素,

不設定引數是為獲取所有元素

(9)splice
使用 splice 方法可以添加、洗掉、替換陣列中的元素,會對原陣列進行改變,回傳值為洗掉的元素,洗掉陣列元素第一個引數為從哪開始洗掉,第二個引數為洗掉的數量,

通過修改length洗掉最后一個元素

通過指定第三個引數來設定在洗掉位置添加的元素

(10)清空陣列
將陣列值修改為[]可以清空陣列,如果有多個參考時陣列在記憶體中存在被其他變數參考,

將陣列length設定為0也可以清空陣列

使用splice方法洗掉所有陣列元素

使用pop/shift洗掉所有元素,來清空陣列
6.合并拆分
(1)join
使用join連接成字串
(2)split
split 方法用于將字串分割成陣列,類似join方法的反函式,

(3)concat
concat方法用于連接兩個或多個陣列,元素是值型別的是復制操作,如果是參考型別還是指向同一物件

(4)copyWithin
使用 copyWithin 從陣列中復制一部分到同陣列中的另外位置,
語法說明:


7.查找元素
陣列包含多種查找的函式,需要把這些函式掌握清楚,然后根據不同場景選擇合適的函式,
(1)indexOf
使用 indexOf 從前向后查找元素出現的位置,如果找不到回傳 -1,

如下面代碼一下,使用 indexOf 查找字串將找不到,因為indexOf 類似于===是嚴格型別約束,

第二個引數用于指定查找開始位置
(2)lastIndexOf
使用 lastIndexOf 從后向前查找元素出現的位置,如果找不到回傳 -1,

第二個引數用于指定查找開始位置
(3)includes
使用 includes 查找字串回傳值是布爾型別更方便判斷

我們來實作一個自已經的includes函式,來加深對includes方法的了解

(4)find
find 方法找到后會把值回傳出來
如果找不到回傳值為undefined 回傳第一次找到的值,不繼續查找

使用includes等不能查找參考型別,因為它們的記憶體地址是不相等的
find 可以方便的查找參考型別

(5)findIndex
findIndex 與 find 的區別是回傳索引值,引數也是 : 當前值,索引,操作陣列, 查找不到時回傳 -1

8.陣列排序
(1)reverse
反轉陣列順序
(2)sort(默認從小于大排序陣列元素)
sort每次使用兩個值進行比較 Array.sort((a,b)=>a-b
回傳負數 a 排在 b前面,從小到大
回傳正數 b 排在a 前面
回傳 0 時不動

9.回圈遍歷
(1)for
根據陣列長度結合for 回圈來遍歷陣列

(2)forEach
forEach使函式作用在每個陣列元素上,但是沒有回傳值,
(3)for/in
遍歷時的 key 值為陣列的索引

(4)for/of
與 for/in 不同的是 for/of 每次回圈取其中的值而不是索引,
10.迭代器方法
(1)keys
通過迭代物件獲取索引

獲取陣列所有鍵
使用while遍歷
11.values
(1)entries
回傳陣列所有鍵值對,下面使用解構語法回圈

12.擴展方法
(1)every
every 用于遞回的檢測元素,要所有元素操作都要回傳真結果才為真,
(2)some
使用 some 函式可以遞回的檢測元素,如果有一個回傳true,運算式結果就是真,第一個引數為元素,第二個引數為索引,第三個引數為原陣列,
(3)filter
使用 filter 可以過濾資料中元素
(4)map
使用 map 映射可以在陣列的所有元素上應用函式,用于映射出新的值,
獲取陣列所有標題組合的新陣列
(5)reduce
使用 reduce 實作陣列去重
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/293198.html
標籤:其他
上一篇:淺學JavaScript05
