UPDATE
JavaScriptに関して、昨日学んだことを振り返ってみる。
- ForEachがメソッドだということを知らなかった。
昔の言語では、予約語とか言っていたものが、もう時代が違うんですね。
自分がソースを見ても、わからなかったことが、
ちゃんとドキュメントに書いてあるじゃ、あーりませんか!
(私、電化製品とかソフトのマニュアルを読まない主義だったので、
今ごろになって、猛反省いたしました)
解説
forEach() は、与えられた関数 callback を配列に含まれる各要素に対して一度ずつ、昇順で呼び出します。インデックスプロパティが削除されていたり、初期化されていなかったりした場合は呼び出されません。(疎らな配列については、下記の例を参照。)
callback は次の 3 つの引数で呼び出されます。
要素の値
要素のインデックス
走査されている配列
forEach() に thisArg 引数が与えられると、callback の呼び出し時にそのオブジェクトが thisArg として使用されます。callback によって究極に管理される this の値は、関数から見える this を特定する一般規則に従います。
前回の疑問
先ずは、プログラムにおける繰り返し処理
ここが、つまづきの原因・・・
一応自分のために整理する。
参考資料 https://github.com/reshinto/programming_language_syntax_comparison#loops
Python
これですね、要するにenumerateを知っているかどうかが肝
今となったら、indexがイテレーション可能なオブジェクトに共通する変数というのが理解できたけど・・・
# Looping and getting index and value
for index, value in enumerate(list_name):
print(index, value) # output index, value
JavaScript
ここからが本題・・・
// forEach loop
// Looping through a list while calling a function
list_name.forEach(function(value, index, list){ // do not need to include all 3 parameters, but must be in order
console.log(index, value, list); // outputs index value list
});
そもそも、なんじゃこれは?
って、最初は身体が180度ぐらい仰け反りそうになった。
つまり、
その・・・
あの・・・
って
こうやって、理路整然と説明しようとしても、一向に説明できん・・・
コールバック関数というのやら、なんで引数が3つもあるんやって
もう、訳わかめです。
結論
習うより慣れろ
さらに
ここに、アロー関数なんて入ってくると、もう意味不明
const func = function(argument) {
alert( 'これまでの関数' );
}
const func = (argument) => {
alert( '新しいアロー関数' );
}