상세 컨텐츠

본문 제목

알고리즘 문제풀이 - convertListToObject

Programming Language/JavaScript

by Yongari 2022. 12. 21. 22:01

본문

문제 설명: 2차원 배열(배열을 요소로 가지고 있는 배열)을 입력받았을 때 배열의 첫번째 요소는 객체의 "Key"로 배열의 두번째 요소는 객체의 "Value"로 만들어서 리턴해야한다. 

 

문제

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

입력

인자 1 : arr

  • 배열을 요소로 갖는 배열
  • arr[i]는 string 타입을 요소로 갖는 배열
  • arr[i].length는 0 또는 2


출력

  • arr[i]의 첫 번째 요소를 키, 두 번째 요소를 값으로 하는 객체를 리턴해야 합니다.



주의 사항

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



입출력 예시

const arr = [
  ['make', 'Ford'],
  ['model', 'Mustang'],
  ['year', '1964'],
  ['make', 'Bill'],
];

let output = convertListToObject(arr);

console.log(output) // -->
{
  make : 'Ford'
  model : 'Mustang',
  year : '1964'
}

 

풀이코드 설명

function convertListToObject(arr) {
  // 객체 선언
  let result = {};

  // 배열의 크기만큼 순회
  for (let i = 0; i < arr.length; i++) {
    //배열의 크기가 0보다 크고 객체의 첫번째 요소가 undefined일 경우 
    if (arr[i].length > 0 && result[arr[i][0]] === undefined) {
      //객체의 첫번째 요소를 Key로 두번쨰 요소는 Value로 객체에 저장
      result[arr[i][0]] = arr[i][1];
    }
  }
  //객체를 반환한다.
  return result;
}

관련글 더보기