const tiles = outlineRectSize(x, y, index, active, mainMap)
Данная строчка в первом вызове отрабатывает нормально. Но при вызовe только лишь функции
outlineRectSize('аргументы')
далее в коде, которая вызывается второй раз, но приравнивается к константе
tiles
- при просмотре в консоли она приобретает новые элементы внутри себя с сохранением предыдущих.
Вот весь код:
x = 1
y = 3
index = 4
mainMap =
[
[5,5,4,4,4,5],
[4,5,4,4,4,4],
[4,3,3,3,3,4],
[4,2,2,2,2,4],
[4,4,4,4,4,4]
]
active = true
const tiles = outlineRectSize(x, y, index, active, mainMap)
let roundTile = function (){
for(let i = 0; tiles.from_pass.length > i; i++){
if(tiles.from_pass[i] != undefined){
this.currX = tiles.from_pass[i].match(/x:([0-9]{1,500})/)[1]
this.currY = tiles.from_pass[i].match(/y:([0-9]{1,500})/)[1]
if(tiles.passed.indexOf(`x:${this.currX}, y:${this.currY}`) == -1){
outlineRectSize(this.currX, this.currY, index, active, mainMap, tiles.from_pass)
}
}
}
console.log(tiles)
// return tiles
}
roundTile()
function outlineRectSize(p_x, p_y, p_index, p_active, p_mainMap, p_tiles = []){
if(p_active){
this.i = p_tiles.length
if(p_mainMap[p_x-1]){
p_tiles[this.i] = widthFigure(p_x-1, 'x', p_tiles)
this.i++
}
if(p_mainMap[p_x+1]){
p_tiles[this.i] = widthFigure(p_x+1, 'x', p_tiles)
this.i++
}
if(p_mainMap[p_y-1]){
p_tiles[this.i] = widthFigure(p_y-1, 'y', p_tiles)
this.i++
}
if(p_mainMap[p_y+1]){
p_tiles[this.i] = widthFigure(p_y+1, 'y', p_tiles)
this.i++
}
return {
from_pass: p_tiles,
passed: [`x:${p_x}, y:${p_y}`]
}
}
function widthFigure(beam, type, p_tiles){
if(type == 'y'){
this.tile = p_mainMap[p_x][beam]
this.x = p_x
this.y = beam
}
if(type == 'x'){
this.tile = p_mainMap[beam][p_y]
this.x = beam
this.y = p_y
}
this.coords = `x:${this.x}, y:${this.y}`
if(this.tile == p_index && p_tiles.indexOf(this.coords) == -1) return this.coords
}
}
как видно в коде нет никакого приравнивания.