たれぱんのびぼーろく

わたしの備忘録、生物学とプログラミングが多いかも

かつてfor文というものがあった

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長を減らすのではなくて、意識しなきゃいけない要素(道具)を減らす.