這幾天來認識一下陣列吧!今天先介紹陣列,明天會開始認識一些常用語法
陣列是種有次序的資料結構,陣列內可以放入任何值,在JS中是隸屬於物件型態,其最大的特色就是能運用索引(index)進行存取資料,需要特別記得的地方是陣列內起始索引是0,即第一個值的索引是0、第二個值是1、第三個值是2...以此類推。
首先我們可以透過下面的方法來宣告陣列
const numbers = [0, 1, 2, 3, 4, 5]
陣列裡可以放進各式各樣的資料型態(數字、字串、物件等等),我們可以運用索引來存取陣列資料或運用length
來查看陣列內有多少資料,又或是抽換特定陣列元素的值
const numbers = [0, 1, 2, 3, 4, 5]
console.log(numbers[2]) // 2 <-- 索引為2的資料
console.log(numbers.length) // 6 <-- 陣列的長度
console.log(numbers[numbers.length - 1]) // 5 <-- 取出陣列最大索引的值
numbers[0] = 6
console.log(numbers) // [6, 1, 2, 3, 4, 5]
我們還可以使用for
迴圈搭配length
的方法來列舉出陣列內的每一個值,操作方式及條件皆可視需求而進行調整,這邊先舉個例子作為參考:
const numbers = [0, 1, 2, 3, 4, 5]
for (let i = 0; i < numbers.length; i++ ) {
console.log(numbers[i]) // 將陣列內每一個值按次序輸出
}
接下來在陣列中我們也可以運用一些方法來新增及刪除陣列資料,今天先認識從陣列的頭部及尾部插入或刪除資料:
const numbers = [0, 1, 2, 3, 4, 5]
numbers.unshift(-1) // 陣列頭部插入資料
console.log(numbers) // [-1, 0, 1, 2, 3, 4, 5]
numbers.shift() // 刪除陣列頭部資料
console.log(numbers) // [0, 1, 2, 3, 4, 5]
numbers.push(6) // 陣列尾部插入資料
console.log(numbers) // [0, 1, 2, 3, 4, 5, 6]
numbers.pop() // 刪除陣列尾部資料
console.log(numbers) // [0, 1, 2, 3, 4, 5]
陣列的操作方法非常方便,而當越了解陣列的相關操作方法也會隨之讓其運用的方式越多元,但還是要注意使用方法是否會直接改變原陣列?又或者是不會影響原陣列會回傳一新陣列?舉例像shift()
來說,他會移除原陣列的第一個元素並回傳給你,所以會直接改變原陣列的資料。
// 此為錯誤示範
const num_1 = [0, 1, 2]
const num_2 = [3, 4, 5]
console.log(num_1 + num_2) // '0,1,23,4,5'
嗯...看來不能這樣相加呢(欠揍),當想把兩個陣列相加時,可以採用合併陣列concat()
語法的方式來進行:
const num_1 = [0, 1, 2]
const num_2 = [3, 4, 5]
const newNumber = num_1.concat(num_2)
console.log(newNumber) // [ 0, 1, 2, 3, 4, 5 ]
concat()
和push()
不一樣的地方在於concat()
會新增出陣列,而不會直接變動原陣列,所以當遇到不想變動到原陣列但又需要其進行操作時,也可以考慮使用這個語法哦。