convertListToObject

2021. 8. 16. 16:06
반응형

JavaScript

문제 : 2차원 배열(배열을 요소로 갖는 배열)을 입력받아 각 배열을 이용해 만든 객체를 리턴해야 합니다.

주의사항 : 중복되는 키의 경우, 초기의 값을 사용합니다. 빈 배열을 입력받은 경우, 빈 객체를 리턴해야 합니다. arr[i]의 길이가 0인 경우, 무시합니다.

 

 

어떻게 풀지 생각해보기 : 왼쪽의 결과처럼 나와야 한다. 배열안의 배열의 첫번째 요소를 key 두번째 요소를 value로 하는 객체를 만들어 주면 된다. 하드코드를 작성해보면

obj[arr[0][0]] = arr[0][1]

obj[arr[1][0]] = arr[1][1]

obj[arr[2][0]] = arr[2][1]

obj[arr[i][0]] = arr[i][1]

이렇게 해주면 되는 거고 이걸 반복문 처리해주면 된다.

그런데 여기서 문제는 중복되는 키의 경우 초기값을 사용해야 한다. 처음에는 그냥 중복되는 것을 고려하지 않고 코드를 짜고 나서 어떻게 해주면 될지 고민을 해보았다. 보통 반복문을 작성하면 i는 0부터 1씩 더하는 형태로 해주는데, 이렇게 해주면 당연히 객체에는 뒤에 처리해준 것이 저장되게 된다. 그래서 i를 배열의 길이값 부터 시작해서 0까지 거꾸로 해주면 초기에 작성된 값이 반복문에서는 마지막으로 처리해줘서 문제를 해결했다. 아래는 내가 작성한 코드이다.

 

반응형
LIST

BELATED ARTICLES

more