let a = Array.from(Array(5), () => new Array(5).fill(null));
let b = new Array(5).fill(new Array(5).fill(null));
console.log(a)⬇️
[
[ null, null, null, null, null ],
[ null, null, null, null, null ],
[ null, null, null, null, null ],
[ null, null, null, null, null ],
[ null, null, null, null, null ]
]
console.log(b)⬇️
[
[ null, null, null, null, null ],
[ null, null, null, null, null ],
[ null, null, null, null, null ],
[ null, null, null, null, null ],
[ null, null, null, null, null ]
]
위와 같이 두개의 값이 동일한데... 똑같은 연산을 적용시키면 결과가 다르게 나온다... 왜 .. ?
let arr = [[0, 0, 0, 0, 0], [0, 0, 1, 0, 3], [0, 2, 5, 0, 1], [4, 2, 4, 4, 2], [3, 5, 1, 3, 1]]
//1
for (let i = 0; i < arr.length; i++) {
for (let j = 0; j < arr.length; j++) {
a[j][5 - 1 - i] = arr[i][j]
}
}
//2
for (let i = 0; i < arr.length; i++) {
for (let j = 0; j < arr.length; j++) {
b[j][5 - 1 - i] = arr[i][j]
}
}
위처럼 2차원 배열의 요소에 도다른 2차원 배열의 요소를 대입했다.
그런데 나오는 결과는 완전히 다르다.
결과
//console.log(a)
[
[ 3, 4, 0, 0, 0 ],
[ 5, 2, 2, 0, 0 ],
[ 1, 4, 5, 1, 0 ],
[ 3, 4, 0, 0, 0 ],
[ 1, 2, 1, 3, 0 ]
]
//console.log(b)
[
[ 1, 2, 1, 3, 0 ],
[ 1, 2, 1, 3, 0 ],
[ 1, 2, 1, 3, 0 ],
[ 1, 2, 1, 3, 0 ],
[ 1, 2, 1, 3, 0 ]
]
왜 이렇게 나오는거지,, JS에 진정한 2차원배열은 없다고는 하지만, 특
만들어지는 방법에 따라, 결과도 다르게 나오다니,, 공부가 필요하다고 생각된다..