くり返しとデータの持ち方

INPUT · スライド

入れ子を繰り返しで処理する

01 / 04

番号だけが違う行が並んだら

前のレッスンの最後で、cart[0]cart[1] でほとんど同じ行を2つ書いたよね。

番号だけが違う行が並んだら繰り返しにできる。配列を for でまわしたときと、やることは同じだよ。

02 / 04

i を番号に使う

fori を配列の番号に使い、そのあとに .名前 をつなげるだけ。

list[i].name は「i 件目のオブジェクトの name」と読めばいいよ。

const pets = [  { name: "もふ", age: 3 },  { name: "ぽち", age: 5 },  { name: "たま", age: 1 },];for (let i = 0; i < pets.length; i++) {  console.log(pets[i].name);}

実行結果

もふ
ぽち
たま

03 / 04

1件ずつ受け取ると読みやすい

pets[i].name が何度も出てくると読みにくい。{ } の中でいったん受け取ると、ぐっと読みやすくなるよ。

どちらの書き方でも動きは同じ。読みやすいほうを選ぼう。

const pets = [  { name: "もふ", age: 3 },  { name: "ぽち", age: 5 },];for (let i = 0; i < pets.length; i++) {  const pet = pets[i];  console.log(`${pet.name}は${pet.age}さい`);}

実行結果

もふは3さい
ぽちは5さい

04 / 04

集計する

ためる変数を外に置けば、全件の合計が出せる。データが何件あってもコードは同じだよ。

if を混ぜれば「条件に合うものだけ数える」こともできる。ここまで学んだ道具が全部つながるところだよ。

const cart = [  { name: "パン", price: 160, count: 2 },  { name: "のり", price: 220, count: 3 },];let total = 0;for (let i = 0; i < cart.length; i++) {  total += cart[i].price * cart[i].count;}console.log(total);

実行結果

980