length
:如果你的元素非常的多,但是你想要取用最後一個元素的值,可以使用length - 1
的方式:
push()
及splice()
:若想在已存在的陣列加入新的元素,可使用push()
這個方法。舉例來說,我想在manu
中新加入Cake
這道菜,寫法如下:
想要一次加入多個元素也可以,以逗點將加入元素隔開即可,如下:
因push()
是從陣列元素尾端開始新增,如果想要指定新增元素位置,可使用slice()
,示範如下:
pop()
、shift()
和delete
、splice()
:若是想要刪除陣列中的元素,可使用pop()
、shift()
和delete
、splice()
,但究竟這幾個刪除方法差別在哪呢?
執行pop()
,是會找到陣列中的最後一個元素,將其踢出刪除:
而shift()
等同於pop,只是shift()
的刪除是會是會找到陣列中的第一個元素,將其踢出刪除:
再來是delete
是可以指定要刪除陣列中的哪一個元素的值,但要注意的是,他不是將元素pop掉,而是把元素變成undefine
的狀態,即記憶體中還是有留位置給他,只是裡面目前還沒有房客,也不知道房客是圓是扁,無法定義:
但如果想要乾淨刪除指定元素,不要留下一個undefine
元素,則可使用splice()
來刪除指定的元素,如下:
toString()
、join()
:toString()
:
join()
:join()
與toString()
很像,都可將陣列元素轉為字串顯示,不過join()
可指定顯元素與元素之間的分隔符號:
sort()
、reverse()
:sort()
可以讓陣列中的元素按照自首字母順序排列:
reverse()
即是將陣列元素由最後一個元素往回依序列出:
另外也可以先將陣列sort()
一次,完成字母順序的排列(有小到大,升冪的排列),再使用reverse()
,則會變成(有大到小,將冪的排列):
如果陣列為數字的話,使用sort()
會出現排列錯誤的情況,像是:1 ,150 ,20 ,3。因為sort()
會以數字的第一個字作為排列大小依據,如果要解決這個問題,可以試試看Compare函式:
sort(function(a, b){return a - b})
,提供範例比較如下:
沒有使用Compare函式,只接sort()
,會出現奇怪錯誤的排列:
使用Compare函式:sort(function(a, b){return a - b})
,則可以成功的作數字升冪的排列囉:
Array.isArray()
、instanceof
:在JS中,當我們用typeof
查詢陣列型別時會發現其回傳結果會是Object
物件:
如果想要釐清這個Object
是陣列還是物件,可以使用下面方法作為辨識,若回傳結果為true
,則為陣列:
- Array.isArray()
- instanceof
資料參考來源:w3schools.com