객체 순회는 단순 for문, for..of문으로는 되지않는다.
오로지 for..in문으로만 가능하다.
function solution(participant, completion) {
const name_dict = {};
for (let name of participant){
if (!name_dict[name]){
name_dict[name] = 1;
continue;
}
name_dict[name] += 1;
}
completion.forEach((name) => name_dict[name]--);
for (name of name_dict) if (name_dict[name]) return name;
TypeError: name_dict is not iterable
function solution(participant, completion) {
const name_dict = {};
for (let name of participant){
if (!name_dict[name]){
name_dict[name] = 1;
continue;
}
name_dict[name] += 1;
}
completion.forEach((name) => name_dict[name]--);
for (name in name_dict) if (name_dict[name]) return name;
정상 출력.
덧붙여 그럼 in으로 key, value 둘다 가져올 수 있나? 테스트를 해보았는데.
for(name, value in name_dict){console.log(value)}
파이썬이 아니다. 역시나 에러를 내뿜는다.
즉
for(name in name_dict){console.log(`key = ${name}, value = ${name_dict[name]}`)}
요런식으로 인자는 key만 받을 수 있고 value는 객체[key] 형식으로 확인해야 한다.
'언어 > Javascript' 카테고리의 다른 글
.sort() (0) | 2022.08.10 |
---|---|
Objects.entries(arr) (0) | 2022.08.10 |
map() vs foreach() (0) | 2022.08.07 |
closure (0) | 2022.08.06 |
Array Destructing, Object Destructing (0) | 2022.08.04 |