當我們想改變陣列中的值時,我們可以這樣做:
const fruits = ["apple", "banana", "cherry"];
fruits[2] = "mango";
console.log(fruits);
// ["apple", "banana", "mango"]
先前提過使用const宣告的變數是不可更改的,那為什麼這個陣列卻可以被更改呢?
這是因為只有primitive values是不可更改的,但陣列不屬於primitive values,所以我們可以更改陣列,但替換整個陣列是不行的。
const fruits = ["apple", "banana", "cherry"];
fruits = ["lemon", "grape"];
這樣會出現錯誤。
陣列有許多的方法(method),當我們使用方法時,在陣列後面加上.再接上方法的名稱,這邊簡單介紹一些:
push這個方法可以將值加進陣列最後面,例如我們想把sakura加進flowers陣列中可以這麼做:
const flowers = ["orchid", "rose"];
const newLength = flowers.push("sakura");
console.log(flowers);
// ["orchid", "rose", "sakura"]
console.log("newLength");
// 3
實際上push方法會回傳一個值,這個值就是更改過後的陣列的長度,因此我們若將它儲存到一個變數(這裡是newLength)中,就可以得到他所回傳的值(陣列長度等於3)。
unshift這個方法可以將值加進陣列最前面,例如
const colors = ["black", "white"];
colors.unshift("orange");
console.log(colors);
// ["orange", "black", "white"]
另外,unshift也一樣會回傳新陣列的長度。
pop方法會移除陣列的最後一個值,我們不需要傳入任何參數,pop方法回傳的是被移除的那個值:
const people = ["Alex", "Ben", "Charlie"];
const el = people.pop();
console.log(people);
// ["Alex", "Ben"]
console.log(el);
//Charlie