다음 개체 배열에 대해 몇 가지 계산을 수행했습니다.
array = [ { x: 6, y: 2 }, { x: 7, y: 2 }, { x: 8, y: 2 } ]
반복 할 때마다 인덱스 0에있는 객체를 제외하고 각 객체를 인접한 객체와 동일하게 설정합니다.
for (let i = array.length - 1; i > 0; i--) {
array[i] = array[i-1]
}
그리고 다음과 같은 대답을 얻었습니다.
[ { x: 6, y: 2 }, { x: 6, y: 2 }, { x: 7, y: 2 } ]
그런 다음 객체를 인덱스 0에 이렇게 설정하고 다음을 array[0].x = 5
얻었습니다.
[ { x: 5, y: 2 }, { x: 5, y: 2 }, { x: 7, y: 2 } ]
내 가정은 인덱스 1의 개체도 변경되지 않았을 것입니다. 왜 이런거야?
값 대신 참조를 할당하기 때문에 발생합니다.
array[i] = array[i-1]
예를 들어 다음을 사용하여 객체의 단순 복사본을 만들 수 있습니다 Object.assign()
.
array[i] = Object.assign({}, array[i-1])
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다