投稿者 tel | 2014年3月31日

JavaScriptで二次元配列

サイズが任意の二次元配列を作る。

一番簡単な方法。

var a = [];
for(var i = 0; i < 3; i++) {
    a[i] = [];
    for(var j = 0; j < 3; j++) {
        a[i][j] = 0;
    }
}
a; //-> [[0,0,0],[0,0,0],[0,0,0]]

Underscore.jsを使ってみる。

_.map(_.range(3), _.partial(_.map, _.range(3), _.constant(0)));
//-> [[0,0,0],[0,0,0],[0,0,0]]

Underscore.jsに指定の値で特定の要素数の配列が初期化できる関数があれば便利そうなのに。

function fill(n, i) {
    var r = new Array(n);
    while(n--) r[n] = i;
    return r;
}
fill(3, fill(3, 0)); //-> [[0,0,0],[0,0,0],[0,0,0]]

すっきりかけたと思ったけどこれだと同じ配列を参照してるだけなので、値を変えると他の要素も変わってしまう。

追記

Underscore.jsでtimes使えば配列作れた。

_.times(3, _.partial(_.times, 3, _.constant(0)));

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

カテゴリー

%d人のブロガーが「いいね」をつけました。