2016-04-22 3 views
0

質問のタイトルがちょっと変わっているようですが、私が探しているのはこのタイトルです。私は配列の配列を持っていて、それを別の配列要素に従って更新したいとします。例えば;配列要素に基づく更新マトリックス

アレイの配列。

var arrayOfArrays = [ 
          [ 
           [false, false, false, false], 
           [false, false, false, false], 
           [false, false, false, false], 
           [false, false, false, false], 
           [false, false, false, false], 
           [false, false, false, false], 
           [false, false, false, false], 
           [false, false, false, false], 
           [false, false, false, false], 
           [false, false, false, false], 
           [false, false, false, false], 
           [false, false, false, false], 
           [false, false, false, false], 
           [false, false, false, false], 
           [false, false, false, false], 
           [false, false, false, false], 
           [false, false, false, false], 
           [false, false, false, false], 
           [false, false, false, false], 
           [false, false, false, false], 
           [false, false, false, false], 
           [false, false, false, false], 
           [false, false, false, false], 
           [false, false, false, false], 
          ], 
          [ 
           [false, false, false, false], 
           [false, false, false, false], 
           [false, false, false, false], 
           [false, false, false, false], 
           [false, false, false, false], 
           [false, false, false, false], 
           [false, false, false, false], 
           [false, false, false, false], 
           [false, false, false, false], 
           [false, false, false, false], 
           [false, false, false, false], 
           [false, false, false, false], 
           [false, false, false, false], 
           [false, false, false, false], 
           [false, false, false, false], 
           [false, false, false, false], 
           [false, false, false, false], 
           [false, false, false, false], 
           [false, false, false, false], 
           [false, false, false, false], 
           [false, false, false, false], 
           [false, false, false, false], 
           [false, false, false, false], 
           [false, false, false, false], 
          ] 

    ] 

及びI

var elementArray = ["0-7-3","2-10-0","2-11-0","2-12-1"] 

ような別の配列が真の0番目の列の3番目のカラムの更新7アレイのような二番目の配列の要素記載の配列の配列を更新する任意のショートカットがあります持っています。 助けていただければ幸いです。

+0

要素を切り替えたいのですか、それとも既にtrueの場合でも常に「true」にしますか? – trex005

+0

私は終わった後もそれは当てはまりません。私がプログラムを開くたびに別の配列配列を作成するつもりです。 –

答えて

2

インデックスを分割して、大きな配列で使用することができます。

var elementArray = ["0-7-3","2-10-0","2-11-0","2-12-1"]; 
for(var i = 0; i < elementArray.length; i++){ 
    var idx = elementArray[i].split('-'); 
    arrayOfArrays[idx[0]][idx[1]][idx[2]] = true; 
} 
+0

私はあなたの解決策を試してみます。結果に応じて質問を更新します。 –

+0

私は感謝をたくさん期待していたのと同じように機能しました。 –

1

私は最初の答えではなかった、とIrkenInvaderのはほぼ同じである、鉱山は、単にいくつかのエラーはあなたの例の中に必要とされたことにチェックインしました。

var arrayOfArrays = [ 
 
    [ 
 
    [false, false, false, false], 
 
    [false, false, false, false], 
 
    [false, false, false, false], 
 
    [false, false, false, false], 
 
    [false, false, false, false], 
 
    [false, false, false, false], 
 
    [false, false, false, false], 
 
    [false, false, false, false], 
 
    [false, false, false, false], 
 
    [false, false, false, false], 
 
    [false, false, false, false], 
 
    [false, false, false, false], 
 
    [false, false, false, false], 
 
    [false, false, false, false], 
 
    [false, false, false, false], 
 
    [false, false, false, false], 
 
    [false, false, false, false], 
 
    [false, false, false, false], 
 
    [false, false, false, false], 
 
    [false, false, false, false], 
 
    [false, false, false, false], 
 
    [false, false, false, false], 
 
    [false, false, false, false], 
 
    [false, false, false, false], 
 
    ], 
 
    [ 
 
    [false, false, false, false], 
 
    [false, false, false, false], 
 
    [false, false, false, false], 
 
    [false, false, false, false], 
 
    [false, false, false, false], 
 
    [false, false, false, false], 
 
    [false, false, false, false], 
 
    [false, false, false, false], 
 
    [false, false, false, false], 
 
    [false, false, false, false], 
 
    [false, false, false, false], 
 
    [false, false, false, false], 
 
    [false, false, false, false], 
 
    [false, false, false, false], 
 
    [false, false, false, false], 
 
    [false, false, false, false], 
 
    [false, false, false, false], 
 
    [false, false, false, false], 
 
    [false, false, false, false], 
 
    [false, false, false, false], 
 
    [false, false, false, false], 
 
    [false, false, false, false], 
 
    [false, false, false, false], 
 
    [false, false, false, false], 
 
    ] 
 
]; 
 
var elementArray = ["0-7-3", "2-10-0", "2-11-0", "2-12-1"]; 
 
for (var i = 0; i < elementArray.length; i++) { 
 
    var keys = elementArray[i].split('-'); 
 
    if (keys.length == 3 && 
 
    typeof arrayOfArrays[keys[0]] != 'undefined' && 
 
    typeof arrayOfArrays[keys[0]][keys[1]] != 'undefined' && 
 
    typeof arrayOfArrays[keys[0]][keys[1]][keys[2]] != 'undefined' 
 
) { 
 
    arrayOfArrays[keys[0]][keys[1]][keys[2]] = true; 
 
    } 
 
} 
 
console.log(arrayOfArrays);

フィドル:あなたは常にtrueに要素を変更するのではなく、切り替えたい場合はhttps://jsfiddle.net/trex005/kzbq9xL0/1

arrayOfArrays[keys[0]][keys[1]][keys[2]] = true; 

を変更

arrayOfArrays[keys[0]][keys[1]][keys[2]] = !arrayOfArrays[keys[0]][keys[1]][keys[2]]; 
+0

あなたのソリューションもいいです。私はそれを利用する別の場所を見つけることができますありがとう。 –

関連する問題