TIL_210310

멜로디·2021년 3월 10일
0

Today I Learned

목록 보기
11/30

오늘 배운 것

  • Object.entries()
  • 어려웠던 문제 : 코플릿 18번
  • 어려웠던 문제 : 코플릿 20번
  • 어려웠던 문제 : 코플릿 21번

Object.entries()

정의 : 객체가 가지고 있는 모든 프로퍼티를 키-값 쌍으로 배열 형태로 반환한다.

testobj = {
  a: 1,
  b: 2,
  c: 3
}

Object.entries(testobj)

(3) [Array(2), Array(2), Array(2)]
0: (2) ['a',1]
1: (2) ['b',2]
2: (2) ['c',3]

코플릿

18번

function getAllButLastElementOfProperty(obj, key) {

  let maybeArr = obj[key];

  if(!Array.isArray(maybeArr) || maybeArr.length === 0) {
    return [];
  } else {
    return maybeArr.slice(0, -1);
  }
}

웬만한건 이해했는데 원래 pop으로 풀려고 했더니 계속해서 원본 배열을 건드리면 안된다는 오류가 발생했다. 나중에 헬프데스크를 이용해서 알게 된 바로는 .....
이거 예전에 배웠던건데 ... pop은 원본 배열을 수정해버리고, slice는 원본 배열을 건드리지 않고 자체적으로 배열을 가지고 있는 너낌이다. 그래서 오류가 났던 pop을 slice로 수정하니까 바로 해결되었다.

21번

function mostFrequentCharacter(str) {
  let obj = {};
  let max = 0;
  let maxStr = '';
  let splitStr = str.split(' ');
  let newStr = splitStr.join('');
  
  for (let key of newStr){ 
    if(obj[key]){ 
      obj[key] += 1; 
    } else {
      obj[key] = 1; 
    }
    
    if (max < obj[key]){
      max = obj[key]; 
      maxStr = key;
    }  
  }
  return maxStr;
}

괜히 처음에는 이중반복문을 사용해서 풀었는데, 그렇게까지 복잡하게 생각할 필요가 없었다.
이건 이따가 또 복습해야지

profile
하루하루 배울때마다 기록하는 일기장

0개의 댓글