2016-04-22 120 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], 
          ] 

    ] 

和我有這樣

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

另一個數組是否有任何快捷方式來更新所述第二陣列等陣列第0的第3列的更新第七陣列爲true在元件陣列的陣列。 任何幫助將不勝感激。

+0

你是否想要切換元素,或者即使它已經爲真,它總是「真」嗎? – 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);

小提琴:https://jsfiddle.net/trex005/kzbq9xL0/1

如果你想切換,而不是總是在不斷變化的元素設置爲true,更改

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

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

你的解決方案也很好。我可以找到另一個地方來使用它,謝謝。 –