for文で配列を処理する際の継続条件式
配列を列挙して何かの処理をする場合、for...in
命令を使うべきではないというのが前の記事。
配列を順に処理する最もシンプルな方法は、昔ながらのfor文
である。
ところで配列をfor文
で処理する例でたまにこういうコードを見かける。
let ary = [1,2,3,4,5,6,7,8,9,10]; for (let i = 0; i < ary.length; i++) { console.log(i + '=' + ary[i]); }
この書き方の場合、for文
の条件式の中の継続条件の指定にdata.length
と直接書いてあり一見シンプルでよさげだが、実際はループ処理の際、その都度配列のサイズ取得をしようとするので、パフォーマンス的によろしくない。古いIE7などのレガシーブラウザでは、その影響が大きいらしい。
このようなケースでは配列のサイズはfor文
の外で一回取得させるか、
let len = ary.length; for (let i = 0; i < len; i++) { console.log(i + '=' + ary[i]); }
あるいは、for文
の初期化式で一回だけローカル変数に格納してしまい使うとよい。
for (let i = 0, len = ary.length; i < len; i++) { console.log(i + '=' + ary[i]); }