Heim >Web-Frontend >js-Tutorial >Warum erstellt Array.fill(Array) Kopien per Referenz in mehrdimensionalen Arrays?
Array.fill(Array) erstellt Kopien per Referenz
Wenn Sie Array.fill zum Erstellen mehrdimensionaler Arrays verwenden, ist es wichtig, sich dessen bewusst zu sein Die inneren Arrays sind zunächst Kopien per Referenz. Dies bedeutet, dass jede Änderung an einem inneren Array in allen anderen widergespiegelt wird, die auf dasselbe Array-Objekt verweisen.
Zum Beispiel:
let m = Array(6).fill(Array(12).fill(0)); m[0][0] = 1; console.log(m[1][0]); // Outputs 1 instead of 0
Um dieses Problem zu beheben, können Sie Array.from verwenden () anstelle von Array.fill():
let m = Array.from({length: 6}, e => Array(12).fill(0)); m[0][0] = 1; console.log(m[0][0]); // Expecting 1 console.log(m[0][1]); // Expecting 0 console.log(m[1][0]); // Expecting 0
Array.from() erstellt eine Kopie des iterierbaren Objekts (in diesem Fall ein Objekt mit einer Längeneigenschaft und einer Zuordnungsfunktion). das ein neues Array zurückgibt). Dadurch wird sichergestellt, dass jedes innere Array unabhängig ist und Änderungen an einem keine Auswirkungen auf die anderen haben.
Das obige ist der detaillierte Inhalt vonWarum erstellt Array.fill(Array) Kopien per Referenz in mehrdimensionalen Arrays?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!