[JS]_daily coding #8

seul_·2022년 6월 2일
0

Algorithm

목록 보기
7/31

코플릿 데일리코딩 7번 convertListToObject


🫥 수도코드

  1. 결과를 담아줄 객체 선언
  2. 배열을 순회하면서 배열의 0번인덱스를 키로 하고, 1번 인덱스를 해당 키의 값으로 담아줌
  3. 빈배열일 경우 예외처리
  4. 결과 객체 반환

😐 첫번째 코드

function convertListToObject(arr) {
  let result = {};
  for (let el of arr) {
    if(el.length >0) {
      result[el[0]] = el[1]; 
    }
  }
  return result;
}

반복문 안에서 el.length >0조건을 줘서, 빈 배열이 아닐 경우에만 해당 작업(값 할당)을 수행하도록 해줬다. 빈 배열일 경우 예외 처리는 됐지만, 중복되는 키가 있는 경우 항상 마지막 값으로 업데이트되기 때문에 문제의 조건을 만족시키지 못했다.

키가 배열에 존재하는지를 판별하는 조건을 추가해줘야할 것 같아서 in 키워드를 사용한 조건을 추가해봤다.

😀 두번째 코드

function convertListToObject(arr) {
  let result = {};
  for (let el of arr) {
    if(el.length >0 && !(el[0] in result)) { 
      result[el[0]] = el[1];
    }
  }
  return result;
}

!(el[0] in result) 조건을 추가해줘서, 빈배열이 아니면서 결과 객체에 배열의 0번 인덱스가 키로 존재하지 않을 경우에만 값을 할당하는 작업을 수행하게 됐다. 내가 쓴 조건은 result[el[0]] === undefined로 바꿀 수도 있다.

profile
Connecting dots

0개의 댓글