2016-04-22 14 views
0

Ich weiß, dass der Titel der Fragen ein bisschen seltsam scheint, aber die Antwort, die ich suche, ist über diesen Titel. Nehmen wir an, ich habe Array von Arrays und möchte es nach einem anderen Array-Elemente aktualisieren. Beispielsweise;Update-Matrix nach Array-Elementen

Array von Arrays;

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], 
          ] 

    ] 

und ich habe ein anderes Array wie

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

Gibt es eine Abkürzung Array von Arrays zu aktualisieren, um die Elemente in der zweiten Reihe wie Update nach der 7. Reihe von 3. Spalte auf true der 0-ten-Array. Jede Hilfe wird geschätzt.

+0

Möchten Sie das Element umschalten, oder immer 'true', auch wenn es schon wahr ist? – trex005

+0

Es wird nicht wahr sein, nachdem ich fertig bin. Ich werde für jedes Mal, wenn ich das Programm öffne, einfach ein Array erstellen. –

Antwort

2

Sie können den Index aufteilen und auf Ihrem großen Array verwenden.

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

Ich werde Ihre Lösung versuchen, danke für schnelle Antwort. Ich werde die Frage nach dem Ergebnis aktualisieren. –

+0

Es hat so funktioniert, wie ich es erwartet habe, vielen Dank. –

1

ich nicht die erste Antwort war, und IrkenInvader das ist fast identisch, hat meine nur einige Fehler in ihm die Überprüfung, die in Ihrem Beispiel benötigt wurde.

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);

Fiddle:https://jsfiddle.net/trex005/kzbq9xL0/1

Wenn Sie statt immer Änderung des Elements auf true wechseln wollen, ändern

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

zu

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

Ihre Lösungen sind auch nett. Ich kann einen anderen Ort finden, um es zu nutzen, danke. –

Verwandte Themen