루이의 개발 블로그

forEach에서 구조분해할당 활용하는 방법 본문

웹개발

forEach에서 구조분해할당 활용하는 방법

루이96 2024. 10. 31. 22:44
 
    Object.entries(state.incarInputs).forEach(([key, value]) => {
      validData.incar[key] = {};
      if ("value" in value) {
        validData.incar[key].value = value.value;
      }
      if ("file" in value) {
        validData.incar[key].file = value.file;
      }
    });

해당 코드를 보면 forEach를 통해 value를 받아오고. 그 안에서 얻은 값을 가지고 value.value 와 같이 접근한다. 처음에 이 부분이 좀 마음에 들지 않았지만 달리 방법이 없다 생각하여 이대로 진행했다. 하지만 그런 생각이 들었다. 오브젝트는 구조분해할당을 활용할 수 있다. 그래서 forEach(([key, value]) 이 안에있는 value를 하나의 Obj르 인식했더니, 방법이 보이기 시작했다. value도 하나의 obj니까 구조 분해 할당으로 처리할 수 있지 않을까? 라는 생각이였다. 이 생각은 다음과 같은 결과로 이어졌다

    Object.entries(state.incar.inputs).forEach(([key, { value, file }]) => {
      validData.incar.inputs[key] = {};
      if (value) {
        validData.incar.inputs[key].value = value;
      }
      if (file) {
        validData.incar.inputs[key].file = file;
      }
    });

코드는 더욱 간결해졌고, 하드코딩 요소도 사라졌다. 이 상황을 다음과 같이 이해하자.

Obj는 언제 어디서든 구조분해할당이 가능하다!