김영빈

혹시 정답이 어떻게 되나요??

정답과 해설을 알려주시면 감사하겠습니다 ...!

2 개의 답변
이확영
var obj = {
    name: "object",
    age: 10,
    weight: 5
}

var sum = 0;
for (var key in obj) {
    if (typeof(obj[key]) == "number") {
        sum = sum + obj[key];
    }
}

console.log(sum);

javascript associative array에서는 for...in을 사용하여 key를 순회하면서 값을 가져올 수 있습니다.
for...in 내에서 console.log(key)를 호출하면 name, age, weight가 출력되는 것을 확인할 수 있습니다.

참고: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in

리희찬

var sum = 0;
for ( var propertyName in obj ){
if( typeof(propertyName ) == "number" ){
sum = sum + obj[propertyName];
}
}
console.log(sum);
이렇게 접근했는데 안되서 찾아보다
위에 답변 보니까 obj[propertyName] 으로 접근해야 되나요?
앞선 예제에선 propertyName이 객체 이름으로 지정 된 것 같은데 그렇다면
type of가 객체를 접근 할 때는 속성이름값이 아니라. 속성 값으로 가져와야 제대로 된 값을 출력 할 수 있나 보네요

답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.