JavaScriptのsliceとfor文の使い方についての疑問
解決したいこと
現在、JavaScriptと他言語を使用して簡単なWebアプリを作成中です。
その中で slice()とfor文の扱いに関して少し混乱してしまったため、質問させてください。
前提
slice(start, end)はstartのインデックスを含み、endのインデックスは含まないことは理解している。
for文の基本的な構造も理解している。
やりたいこと
const list = [1, 2, 3, ..., 31]; // 1〜31の値が入っている
この配列から 1〜7日目 の値だけ取り出してループ処理をしたいです。
自分の書いたコード
const day = list.slice(0, 7); // → [1, 2, 3, 4, 5, 6, 7]
for (let i = 0; i <= day.length; i++) {
const item = day[i];
console.log(item);
}
list(0,7)としてlistから1から7までを取り出す。
dayの中にはインデックス0からインデックス6までが入っている。
そのため、for文で7までの値をループさせたいなら0 <= day.length(インデックス0から6まで)まで回すと思っています。
ChatGPTの回答
for (let i = 0; i < day.length; i++) {
const item = day[i];
console.log(item);
}
i < day.length;だとdayのインデックス5までしかループせず、1日から6日までしか取得できないのではないかと思いました。
確認したいこと
なぜ i < day.length が正しくて、i <= day.length はNGなのか。
ご教授いただけますと嬉しいです!