배워서 남 주자

배열과 객체 순회

미래에서 온 개발자 2022. 11. 6. 11:15

배열과 객체가 담고 있는 데이터에 접근하거나 조작(수정, 삭제 등등)을 해주기 위해 배열과 객체를 순회해야 하는 경우가 빈번하게 발생한다. 

 

 

배열 순회하는 방법

 

  1. for loop
  2. forEach 메소드
  3. for of : element 접근
  4. for in : index 접근
  5. while

 

객체 순회하는 방법

 

  1. for in : key 접근
  2. Object.keys() : 객체의 keyName을 배열로 받아오기 때문에 이 배열을 활용해 객체를 순회
    (또는 Object.values() 도 쓸 수 있지만 key를 받아오면 어차피 obejct[key]로 value에 접근 가능하기 때문에 굳이...?)

 

시작점이나 종료 지점을 지정할 수 있는 for loop를 객체를 순회할 때는 쓸 수 없기 때문에 사실상 선택지가 for in 하나 밖에 없다.

Object.keys()처럼 Object.entries() 라는 내장 메소드를 쓰면 key: value를 이중 배열 형태로 동시에 가져올 수 있지만 이중 배열을 다루는 것보다 for in 으로 컨트롤 하는 것이 훨씬 쉬운 것 같다. 

 

배열은 forEach 메소드 이외에도 여러 가지 강력한 메소드들이 있어서 데이터를 핸들링하기에 편하지만 대부분의 메소드들이 알고리즘 시간 복잡도에서 O(n) 복잡도를 가지기 때문에 객체보다 느리고 무겁다. 배열 메소드에 대한 부분은 별도로 포스팅할 예정.