Mein Problem ist folgende:javascript Element des Arrays unveränderlich bleibt, auch nach Änderung Wert
diese Klasse Angenommen, es ist ein Beispiel für meinen wahren Code:
class TileMap {
constructor (w, h) {
this.tiles = [];
// init the matrix
for (var i = 0; i < h; i++) {
var a = [];
for (var j = 0; j < w; j++) {
a.push(0);
}
this.tiles[i] = a;
}
}
setTile (x, y, tile) {
this.tiles[y][x] = tile;
}
doSomething() {
this.setTile(0, 0, 1);
this.setTile(0, 1, 2);
}
}
// What's happening is when I use like this:
var player = {};
player.map = new TileMap(32, 90, 90);
player.map.doSomething();
console.log("before Tile[0][0] = " + player.map.tiles[0][0]);
player.map.setTile(0, 0, 3);
console.log("after Tile[0][0] = " + player.map.tiles[0][0]);
Zeigt mir der folgende Ausgang:
before Tile[0][0] = 1
after Tile[0][0] = 1
Die Matrix wird geändert, kehrt jedoch zu den Vorher-Werten zurück. Was soll ich tun? (HINWEIS Ich bin nicht vertraut mit Javascript aber mit Sprache wie C++)
ich 'nach Tile [0] [0] = 3' Könnten Sie Ihren eigentlichen Code zeigen? – Thomas
Funktioniert auch für mich – JonWells
Ja, ich mache das vor, aber ich habe Funktion in der Klasse TileMap, die das Array direkt verändert und ich bekomme das gleiche Ergebnis: ändert und kehrt zum Original zurück. – samleo