Здравствуйте!
Новичок. Делаю карту для игры через многомерный массив, следующим образом:
class GameMap {
constructor() {
this.data = this.createMap();
this.data[2][2] = 1; //****
// 0 - empty
// 1 - box
}
createMap() {
var arr = [];
for (let i=0; i<10; i++){
arr.push(0);
}
var arr10x10 = [];
for (let i=0; i<10; i++){
arr10x10.push(arr);
}
return arr10x10;
}
save(){
localStorage.setItem('gamemap', JSON.stringify(this));
}
load(){
var gamemap = JSON.parse(localStorage.getItem('gamemap'));
this.data = gamemap.data;
}
show(){
var map = document.getElementById('map');
map.style.width = "500px";
map.style.height = "500px";
for (let i=0; i<this.data.length; i++){
for (let y=0; y<this.data.length; y++){
var cols = document.createElement('div');
var rows = document.createElement('div');
cols.className=`d-${this.data[i][y]}`;
cols.style.width = "50px"
cols.style.height = "50px"
cols.style.border = "1px solid black"
rows.style.border = "1px solid black"
map.appendChild(cols);
map.appendChild(rows);
}
}
}
}
Проблема в следующей строке this.data[2][2] = 1; //**** Она не заменяет нужный элемент. 1 добавляется во втором элементе каждой строки:
http://take.ms/OJNiU Не могу понять почему.
Помогите, пожалуйста