monolithic kernel

JavaScriptでArrayの反復メソッドを利用する

May 14, 2011

    Arrayにあるコールバック関数を引数にとる反復メソッドのメモ。これらのメソッドがあるとないとでは書きやすさがぜんぜん違ってくると思います。

    なお、今回紹介するメソッドはすべてIE8以下では定義されていませんが、以下のページで古いブラウザ向けにJavaScriptで同じ処理を実装したコードが紹介されているので、それをコードの先頭に貼りつければ利用できるようになります。 Array - MDC Docs## forEach

    すべての要素について関数を適用します。

    Ruby

    array.each do |item|  ...end

    JavaScript

    array.forEach(function(item) {  ...});

    map

    すべての要素について関数を呼び出した結果からなる配列を作成して返します。

    Ruby

    result = array.map {|item| ... }

    JavaScript

    result = array.map(function(item) { return ...; });

    filter

    すべての要素のうち関数がtrueを返した要素からなる配列を作成して返します。

    Ruby

    result = array.select {|item| ... }

    JavaScript

    result = array.filter(function(item) { return ...; });

    some

    条件を満たす要素が1つでもある場合にtrueを返します。

    Ruby

    result = array.any? {|item| ... }

    JavaScript

    result = array.some(function(item) { return ...; });

    every

    すべての要素が条件を満たす場合にtrueを返します。

    Ruby

    result = array.all? {|item| ... }

    JavaScript

    result = array.every(function(item) { return ...; });

    reduce

    前の要素に対して関数を呼び出した結果をcurrentとしてすべての要素について関数を適用し、最後の結果を返します。

    Ruby

    result = array.inject([init]) {|current, item| ... }

    JavaScript

    result = array.reduce(function(current, item) { return ...; }[, init]);