iT邦幫忙

2026 iThome 鐵人賽

DAY 12
0

如果一次有很多筆的資料內容,特地給每一個都設個變數的話後續可能會搞混要調用的資料。陣列可以把這些資料都放在同一組裡面。

const week = ["星期一", "星期二", "星期三"];

陣列中的每一個位置都有編號,這個編號叫做索引。索引從 0 開始,所以陣列中的第一筆不會是從1開始而是從0

console.log(week[0]);
console.log(week[1]);
console.log("有幾筆資料", week.length);
console.log("最後一筆", week.at(-1));

https://ithelp.ithome.com.tw/upload/images/20260926/20178696YXpesTOVuP.png

.length會取得陣列目前有幾筆資料。這裡的長度是 3,因此最後一筆的索引是 2,也就是length - 1。如果只是想取得最後一筆,也可以使用week.at(-1)。

console.log(lessons[lessons.length - 1]); // 條件判斷
console.log(lessons.at(-1)); // 條件判斷

讀取時使用索引,修改內容時也是一樣。現在我來將「星期二」改成「 Tuesday」:

week[1] = " Tuesday";
console.log("修改第二筆資料後:", week);

https://ithelp.ithome.com.tw/upload/images/20260926/20178696HIJsBfhYr5.png

之前知道了明明const不能重新指定也不能進行更改,但是這裡卻能將資料內容week[1]改掉。原因是因為現在的week仍然指向同一個陣列,改變的只是陣列裡面的內容。但如果寫成week = ["星期"],這就會是進行重新指定,程式就會報錯。
https://ithelp.ithome.com.tw/upload/images/20260926/2017869605L7laGyxz.png

接著是增加與移除。push會從陣列尾端加入資料,pop會移除尾端資料;unshift與shift則是處理開頭。

https://ithelp.ithome.com.tw/upload/images/20260926/20178696bPvWL02U0y.png

week.push("星期四");
console.log("從尾端加入後:", week);

const lastweek = week.pop();
console.log("從尾端取出:", lastweek);
console.log("目前陣列:", week);
week.unshift("星期天");
console.log("從最前面加入:", week);

const firstweek = week.shift();
console.log("從最前面取出:", firstweek);
console.log("目前陣列:", week);

https://ithelp.ithome.com.tw/upload/images/20260926/20178696i8bMWx2gjV.png

要注意的是,push、pop、unshift和shift都會直接改變原本的陣列。取出的資料可以用變數接住,像上面的lastweek就是被pop移除的內容。

最後來比較名稱很像的slice與splice。slice(0, 2)會複製索引 0 到索引 2 之前的內容,原本的陣列不會改變;splice(1, 1)則會從索引 1 開始刪除一筆,原陣列也會跟著少一筆。

https://ithelp.ithome.com.tw/upload/images/20260926/201786966ggHVzuw7I.png

const firstTwo = week.slice(0, 2);
console.log("slice 取得:", firstTwo);
console.log("slice 後的原陣列:", week);

const removed = week.splice(1, 1);
console.log("splice 移除:", removed);
console.log("splice 後的原陣列:", week);


上一篇
day11 字串
下一篇
DAY13 物件
系列文
從頭開始的Javascript學習之旅 共 14 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言