Ruby コードのチャンクを Node.js に変換しようとしています。ある特定の作品は、私を困惑させましyield
た。コードは次のようになります。
each_pair(hash["args"][0]) do |key, value, pair|
# perform operations
end
...
def each_pair(hash)
hash["props"].each do |p|
yield(p["key"], p["value"], p)
end
end
このコードを正しく読んでいれば、「ハッシュ プロパティを反復処理します。すべての要素について、外側の関数を呼び出して、指定されたp["key"], p["value"], p
値で操作を実行します。」
これがJavascriptでどのように見えるか、私は本当に理解できません。私はもっと些細なクロージャーを書くことに精通しています。変換はまったく可能ですか?私はそれが次のようなものだと推測しています:
each_pair(hash["args"][0], function(key, value, pair) {
// perform operations
}
...
function each_pair(hash, func) {
hash["props"].forEach(p) {
func(p["key"], p["value"], p)
}
}
でも何か気持ち悪い…。