다음 코드에서 2 차원 배열이 생성되고 0으로 미리 채워질 것으로 예상됩니다. 내가 겪고있는 문제는 x[0][3] = 2
이 너무 빨리 일어나고있는 것 같아서, 콘솔 로그가 함수 안에있을 때 배열은 이미 변경된 값을 가지고있다. 타임 아웃이 있어도이를 해결할 수 없습니다. 무슨 일이야?이 2 차원 어레이가 예기치 않은 결과를 만드는 이유는 무엇입니까?
function test(size) {
var row = [];
var return_me = [];
for (var i=0; i < size; i++) { row.push(0); }
for (var j=0; j < size; j++) { return_me.push(row.slice()); }
console.log("1:");
console.log(return_me);
return return_me;
}
var x = null;
console.log("0:");
console.log(x);
x = test(5);
console.log("2:");
console.log(x);
x[0][3] = 2;
console.log("3:");
console.log(x);
예상치 못한 결과가 온다 "1 :"내가 얻을 출력에 : 배열 객체이기 때문에
이0: 0
1: 0
2: 0
3: 2
4: 0
실제 _error_가 있습니까? 아니면 예기치 않게 보이는 로그입니까? – Xufox
예상치 못한 로그 결과는 무엇입니까? –
죄송합니다. 오해의 소지가 있습니다. 오류는 없습니다. 좀 더 명확하게 질문을 업데이트하고 있습니다. –