最近都在學 React 框架,從創建組件、組建三大屬性、虛擬 DOM、組件生命週期…等開始慢慢理解,然後發現 React 要學的好,真的是要把 Javascript 的基礎根基開始打穩才有辦法,所以就每週花一天來回顧過往那些常被我忘記的 JS 基礎吧!
話說,超級推薦尚硅谷的 React 免費課程,講的超細 ( 是優點也是小缺點XD ),完完全全的把每一個觀念的緣由講的很清楚,如果有在學 React 框架的人可以參考看看
這次要筆記的就是:
陣列 Array

快速尋找
【 陣列定義 】
說明:
當有很多變數 ( variable ) 要宣告時,就可以用陣列 ( array ),將每個變數放在陣列裡,這樣讀取或取出比較好管理,也不用宣告一堆變數
陣列裡的各個元素可以字串、數字、布林混搭,但最好統一會比較好管理
寫法:
陣列會用 [ ] 包起來,中間的各個元素用 , 隔開
let 陣列名稱 = [ '元素1', '元素2', '元素3' ];
範例:
可以想成假設一個班級裡有五個學生,名字分別為「Amy、John、Cindy、Kevin、Sherry」,如果沒有陣列的話,就要一個一個宣告放在五個變數裡,如下圖,不但宣告麻煩,連要讀取名字時也要去記變數名稱才有辦法讀取

所以這時有陣列在就方便很多,上述的名字只要宣告一個陣列,並把所有名字放在裡面就行,如下圖

【 陣列基本語法 】
1. 取出指定的元素 array.[index]
說明:
要讀取指定的元素,只要知道陣列名稱和該元素的索引值即可,索引值可以想成位置,順序由左到右,只是第一個元素的位置是從 0 開始
寫法:
array[index]
範例:
接下來的範例都以下圖為例,班級 101 有五位學生,我想找到 Sherry 這位同學,所以我只要知道她在哪個班級,然後坐在哪個位置即可,要特別注意的是,剛剛上面有說索引從 0 開始,所以 Sherry 從 0 數過來就會是 4,不是 5 哦

2. 取出陣列長度 array.length
說明:
每個陣列都一定會有長度,而陣列的長度就是看裡面的元素有幾個,長度就為多少,而索引值一定都是從 0 開始,所以陣列的長度一定會比元素的每個索引值大,同理,如果想取出最後一個元素,直接用「陣列長度-1」就可以輕鬆取出
即使該陣列裡面沒有任何元素,長度也會有值,就是 0
寫法:
array.length
範例:
班級 101 有五位學生,我想知道這個班級有幾位學生,用陣列長度就可以知道,並且也可以用「陣列長度-1」找到該班級最後一個座位的學生

3. 新增元素至陣列 array.push()、array.unshift()
說明:
新增元素至陣列有幾種方式,分別為以下三種
- 新增元素至最後面:即索引為「長度減 1」 的位置
- 新增元素至最前面:即索引為「0」的位置
- 新增元素至指定的位置:可以自己指定新增的元素要放在陣列裡的哪個位置
寫法:
//新增元素到陣列最後面
array.push(新增的元素)
//新增元素到陣列最前面
array.unshift(新增的元素)
//新增元素到指定的陣列位置
array[index] = 新增的元素
範例:
班級 101 原本有五位學生,後來又來了三個新學生「Kelly, Paul, Ray」
→ 原本的 Sherry 畢業了,換成 Ray 頂替她的位置,所以直接將 Sherry 的座位指定給 Ray
→ Paul 要坐在最前面,所以用 unshift
→ Kelly 要坐在最後面,所以用 push

4. 將元素從陣列刪除 array.pop()、array.shift()、array.splice(startIndex,endIndex)
說明:
將元素從陣列中刪除一樣有幾種方式,分別為以下四種
- 刪除最後面的元素:即將索引為「長度減 1」 位置的元素刪除
- 刪除最前面的元素:即將索引為「0」位置的元素刪除
- 刪除指定位置的元素:可以自己指定陣列裡的哪些位置的元素要刪除,也可以刪除連續位置的元素
→ 比如該陣列有 5 個元素,若希望把中間第 2 個到第 4 個元素刪掉,就可以指定從索引 1 ( 第 2 個元素 ) 開始到索引 3 ( 第 4 個元素 ) 的元素都刪除
寫法:
//刪除最後面的元素
array.pop()
//刪除最前面的元素
array.shift()
//刪除指定位置的元素
array.splice(起始索引位置,結尾索引位置)
範例:
班級 101 有五位學生,大部分學生都畢業了,所以要從此班級內刪除學生和座位
→ 坐在第二個位置 ( John ) 和第三個位置 ( Cindy ) 的學生畢業了,所以用 splice
→ 坐在最後面座位 ( Sherry ) 的學生畢業了,所以用 pop
→ 坐在最前面座位 ( Amy ) 的學生畢業了,所以用 shift

5. 將元素從陣列清除 delete array[index]
說明:
可以自己指定陣列裡的哪個位置的元素要清除,有一點要注意,清除不等於刪除,只是把元素清掉變成空值,那個位置還在哦!所以也不會變動到陣列的長度
寫法:
delete array[index]
範例:
班級 101 有五位學生,其中 Cindy 轉班,但位置依舊留著,所以要用 delete 來清空該座位來給後續新來的學生

6. 確認元素是否在陣列裡 array.includes(‘element’)
說明:
確認陣列裡是否存在某個元素,存在的話會是 true ,不存在的話會是 false
寫法:
array.includes('要查詢的元素')
範例:
班級 101 有五位學生,要確認 Sherry 和 Wendy 是否在此班級內,所以可以用 includes 來尋找
