Frontend/javaScript

for in vs for of

dddzr 2023. 4. 17. 17:28

Object.keys() 를 이용해 배열을 순회하려고 하는데 key값이 index로 들어가는 문제가 있었습니다.

 

Object.keys() 함수는 객체의 키들을 배열로 반환합니다. 이 배열의 인덱스는 0부터 시작하므로, for...in 루프를 사용하여 객체의 키들을 순회할 때, 첫 번째 키는 0이 됩니다.

이 경우 for...in 루프 대신 for...of 루프를 사용하면, 배열의 각 요소를 직접 참조할 수 있습니다. for...of 루프는 배열의 값을 순회하며, 배열의 인덱스를 신경쓰지 않기 때문에 위와 같은 문제가 발생하지 않습니다.

 

let data = this.data;
let keys = Object.keys(data);
for (let key of keys) {
  this.data[key] = data[key];
}

 for...of 루프를 사용하여 keys 배열의 각 요소인 키를 직접 참조하고, 해당 키를 사용하여 data 객체의 값을 복사하는 코드입니다.