陣列的建構子
由於陣列的建構子在處理參數時的不確定性,因此強烈建議使用 []
符號來建立一個新陣列。
<code>[1, 2, 3]; // Result: [1, 2, 3]<br>new Array(1, 2, 3); // Result: [1, 2, 3]<br>[3]; // Result: [3]<br>new Array(3); // Result: []<br>new Array('3') // Result: ['3']</code>
當只有一個參數被傳遞到數組的建構子中,而這個參數還是一個數字時,建構子將會傳回一個元素值為undefined
的數組,而且這個數組的length
屬性被設定為傳入建構函數的數字參數。但實際上上新數組的索引並沒有被初始化。
這種用法只有在很少數情況下會被使用,例如循環字串時,這種用法可以避免使用一個循環。
<code>new Array(count + 1).join(stringToRepeat);</code>
總結
綜上所述,我們應該盡量使用 []
來建立新函數,而不是數組的建構函數,這樣程式碼會有更好的可讀性。
資料常見操作
因為這篇文章的原文比較短,所以我打算把一些常用的陣列操作方法也總結一下:
加入元素
1.push
- 將一個或多個新元素加入陣列結尾,並傳回陣列新長度。
2.unshift
- 將一個或多個新元素加入陣列開始,陣列中的元素自動後移,傳回陣列新長度。
3.splice
- 將一個或多個新元素插入到陣列的指定位置,插入位置的元素自動後移,傳回 []
。
刪除元素
1.pop
- 移除最後一個元素並傳回該元素值。
2.shift
- 移除最前一個元素並傳回該元素值,陣列中元素自動前移。
3.splice
- 刪除從指定位置 deletePos
開始的指定數量 deleteCount
的元素,陣列形式傳回所移除的元素。 (注意與添加元素時參數的差異)
其他操作
1.join
- 回傳字串,這個字串將陣列的每一個元素值連接在一起,中間用 separator
參數隔開。
2.slice
- 方法用於返回數組中一個片段或子數組,如果只寫一個參數返回參數到數組結束部分,如果參數出現負數,則從數組尾部計數,如果start
大於end
傳回空數組,slice
不會改變原數組,而是傳回一個新的數組。
3.concat
- 將多個陣列(也可以是字串,或是陣列和字串的混合)連接為陣列,傳回連接好的新的陣列。
4.reverse
- 反轉元素(最前面的排到最後、最後的排到最前),傳回修改後的陣列。
5.sort
- 將陣列元素排序,傳回修改後的陣列。當沒有參數的時候會依照字母表升序排序,也可以傳一個排序方法進去。