2012年3月8日木曜日

[jQuery]grep関数

jQueryのgrep関数を使って、配列の内容にフィルタかけてみたメモ。

grep関数の仕様

grep(array,callback,invert)

array    -> grepをかけたい配列オブジェクト
callback -> フィルタ条件をもつ関数オブジェクト。戻り値でbooleanを返したげる。
invert   -> これをtrueにしてあげると、callback関数の条件を逆にできる。(falseのものだけをフィルタする場合は、trueにするイメージ)

    var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
    (function ($) {
        // 5以下の要素のみを抽出
        var filter = $.grep(arr, function (value) {
            return value <= 5;
        });

        // 3つめのパラメータがtrueなので、6以上の要素のみが抽出される。
        var filter = $.grep(arr, function (value) {
            return value <= 5;
        }, true);

        // 以下のように正規表現も使えます。
        var ret = $.grep(["100", "200", "300"], function (value) {
            return value.match(/[12]00/);
        });
    })(jQuery);