回答編集履歴

1 訂正

Lhankor_Mhy

Lhankor_Mhy score 25154

2019/06/22 10:22  投稿

質問終了済みに回答してすみません。
papinianusさんのご回答はわかりやすいのですが、実際のforループとスコープ周りの動作が異なりますのでご注意ください。mankomanさんのご回答が参考になると思います。
papinianusさんのご回答はわかりやすいのですが、実際のforループとスコープ周りの動作が異なりますのでご注意ください。karamarimoさんのご回答が参考になると思います。
```js
const characters = [
      {name: "田中", age: 14},
      {name: "佐藤", age: 100},
      {name: "久保", age: 5},
      {name: "飯田", age: 19}
   ];
//質問のコード(一部追加)
for (let i = 0; i < characters.length; i++) {
    const character = characters[i];
    console.log(`${character.name}`);
    setTimeout(function(){console.log(i)}, 1000);
}
/*
田中
佐藤
久保
飯田
0
1
2
3
*/
//papinianusさんのコード(一部追加)
loop:{
let i = 0;
if(i>=characters.length) break loop;
         //1回目のループ
      {
          const character = characters[i];
          console.log(`${character.name}`);
          setTimeout(function(){console.log(i)}, 1000);
      }
i++;
if(i>=characters.length) break loop;
      //2回目のループ
      {
          const character = characters[i];
          console.log(`${character.name}`);
          setTimeout(function(){console.log(i)}, 1000);
      }
i++;
if(i>=characters.length) break loop;
        //3回目のループ
      {
          const character = characters[i];
          console.log(`${character.name}`);
          setTimeout(function(){console.log(i)}, 1000);
      }   
}
/*
田中
佐藤
久保
2
2
2
*/
```

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る