jQuery:二重配列ループ

goto_jp 642views 更新:2014年12月15日

jQueryだとeachループが簡単にできるのでメモ。(JavaScript自体はeachの概念がない)

下記例は「array1」に["りんご","ごりら","らっぱ","ぱんだ"]の項目をまず挙げ、実際のデータ配列の「array2」の中にそれぞれが実際何個あるのかをカウントする処理。

$(function(){

    //それぞれの個数を表す二重配列を定義
    var array1 = [
        ["りんご","ごりら","らっぱ","ぱんだ"],
        [0,0,0,0]
    ];
    //比較するデータ配列を定義
    var array2 = ["らっぱ","りんご","りんご","ぱんだ","りんご","らっぱ"];

    //データ全件でeachループ
    $.each(array2, function(i) {
        var temp = $(this); //データを比較するため一時的に格納
        //個数用配列のデータ項目側(array1[0])でeachループさせる
        $.each(array1[0], function(j) {
            //データ項目とデータが等しければカウント側の配列を足す
            if(prefecture[0][j] == temp) {
                ++prefecture[1][j];
            }
        });
    });

});

array2のデータごとの件数を出すだけなら他に簡単なやり方もあると思いますが、array1の並びが重要な場合はこういった処理になるのかなと思います。

13行目で$(this)を使っていますが、この記述だけでループされている要素の中身を取ってくることができます。
この場合なら「array2[i]」の値が返ってきます。

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません