정의 : 객체가 가지고 있는 모든 프로퍼티를 키-값 쌍으로 배열 형태로 반환한다.
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]
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로 수정하니까 바로 해결되었다.
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;
}
괜히 처음에는 이중반복문을 사용해서 풀었는데, 그렇게까지 복잡하게 생각할 필요가 없었다.
이건 이따가 또 복습해야지