1

アロ'

私は私の小さなプロジェクトに取り組んでおり、その一部には、既に作成された 2 次元配列を取得してランダム化することが含まれます。

だから私はこのようなものを持っています:

foo = [[1,2],[3,4],[5,6],[7,8]];

randomizeFoo = function(){ 
    var randomizedFoo = [];
    newFoo = foo;
    for(i = 0; i < newFoo.length; i++){
        count = Math.random() * newFoo.length;
        randomizedFoo.push(newFoo.slice(count, count + 1));
    }
    return randomizedFoo; 
};

これは実際に配列をランダム化しますが、最終的には次のようになります。

randomizedFoo = [[[7,8]],[[1,2]],[[5,6]],[[3,4]]]

私のすてきな 2D 配列は、3D 配列になり、最下位レベルの配列が余分なレベルの下にバリ取りされました。これはそれほど大したことではなく、コードの残りの部分で補う必要があるだけですが、2つの理由で私を悩ませています。

  1. それは余分な複雑さであり、決して良いことではありません。
  2. 理由を知らずにコードを実行するのは好きではありません。

なぜこれを行っているのか、誰にもアイデアがありますか? 2D 配列を入れましたが、2D 配列を再び取り出したいです。

4

2 に答える 2

0

この回答からスクリプトを取得して使用できますmap

foo = range(0, foo.length-1, true).map(function(i) {
  return foo[i];
});

デモ: http://jsbin.com/ayepeh/1/edit (Ctrl + Enter で更新)

于 2013-01-26T08:13:25.300 に答える