본문 바로가기

언어/Javascript

객체 순회

객체 순회는 단순 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