2016-12-14 1 views
1

Ich habe ein Array, das ich will das gleiche bleiben, bis ich sonst sage. Wie verhindere ich, dass es sich ändert?Verhindern 2D-Array zu mutieren, Javascript

var orgArr = [[1,1], [2,2]]; 


function modArr(arr){ 
    arr[0][0] = 5; 
    return arr; 
} 

modArr(orgArr); 
console.log(orgArr); // It has changed 

https://jsfiddle.net/50e6k7mc/

Ich habe versucht, einige mit unveränderlichen (was ich zu der Geige hinzugefügt).

So etwas wie

var orgArr = Immutable.List([[1,1],[2,2]]) 

Dann toArray() verwenden. Aber ich kann es nicht zur Arbeit bringen.

+0

Geck, warum haben Sie Ihre vorherige Frage löschen ? Ich habe darauf geantwortet. –

Antwort

0

In Ihrer modifizierende Funktion müssen Sie zuerst von Immutable konvertieren, zu modifizieren und dann zu Immutable

arr=arr.toArray(); 
//.... modify arr 
//.... 
arr= arr.fromJS(arr); 

hier ist der aktualisierte Code umwandeln zurück: https://jsfiddle.net/zvhp5k91/