for(let i; i < array.length; i++){ print(array[i]); }
for文の改善ポイント
配列の要素を取り出して操作したい=>配列の何番目の要素を弄っているかはどうでもいい という場合でも、番号を渡される
for(let i; i < array.length; i++){ // いやiは別に知りたくないんだけど… print(array[i]); // i番目、ってのは別に知りたくないんだよなぁ… }
改善策1
そう、i番目って情報は不要な場合が多い。要素を取り出して、操作したいわけ
=> 要素を取り出す
for (element of array){ print(element); }
ひゅー、i番目とか言う、(今回は)無駄な情報が無くなったぜ、coolだ.
- JavaScript: for(elem of array){}
- Python : for elem in array:
- C# : foreach(int elem in array){}
- Java : for(int elem: array) 拡張for文
考え中
for(elem of array){print(elem);} array.forEach(elem=>print(elem));
情報量変わらない.
// forタイプ let newArray = []; for(elem of array){ array.push(elem*2);} // mapタイプ let newArray; newArray = array.map(elem=>elem*2);
pushしたいわけじゃない. 各要素を倍にしたいだけ.
=> pushの情報いらなくね?
=> map (…おいmapの情報増えたぞ)
newArrayを空arrayとして用意するってのも、したいことではないんだよな.
for文を発展的に解消する利点の1つは、
無駄な手段(道具)を減らす…に見える.
最終目的の為に、道具としてiを使ってたけど、道具無しでもいけるやん、的な…
code長を減らすのではなくて、意識しなきゃいけない要素(道具)を減らす.