2014-11-05 6 views
0

아무도 도와 줄 수 있습니까? 잠시만 붙어 있어야합니다. 내 객체의 속성을 인쇄 할 필요가있는 사람이면 누구나 왜이 기능이 작동하지 않는지 알 수 있습니까?for를 사용하여 객체를 반복하는 경우

+0

마르크 [X]가 단지 X되어야한다. –

+1

속성의 값이나 속성의 이름을 인쇄한다는 의미입니까? – Sebas

+0

@Sebas 나는이 질문을 부동산의 이름으로 해석했다. –

답변

1

for ... in 루프는 지정된 배열/개체의 모든 속성을 반복합니다. 실제로 (원하는) 속성으로 개체에 액세스하려고 시도합니다.

귀하의 경우, text += x;은 속성을 원하면 찾고자하는 것이어야합니다.

mark.forEach(function(value){ 
    text += value; 
}); 
+0

거짓. 'for x in foo'는 foo의 KEYS를 값이 아닌 x에 넣을 것입니다. –

+0

너는 'name o birthday of irish'가 아닌'name dateofBirth national'을 포함하는 문자열을 만들 것입니다. –

+0

@MarcB "속성을 출력하십시오"나는 값이 아닌 속성의 이름을 의미한다고 생각했습니다. 묻는 사람은 –

0

는 HTML 요소를 열기/닫기를 누락하고 '변수 텍스트를'선언되지 않은 : 당신이 개체의 값을 얻고 싶다면

당신과 같은 예를 들어 forEach를 사용할 수 있습니다. 이런 식으로 시도 :

<!DOCTYPE html> 
<html> 
<head> 
</head> 
<body> 
<h1>Person</h1> 
<p id="person"></p> 

<script type="text/javascript"> 
    function person(name, dateOfBirth, nationality){ 
     this.name = name; 
     this.dateOfBirth = dateOfBirth; 
     this.nationality = nationality; 
    } 

    var text = ""; 
    var mark = new person("mark oshea",25,"irish"); 
    for(x in mark) { 
    text += mark[x] + " "; 
    } 

    var person_paragraph = document.getElementById("person"); 
    person_paragraph.innerHTML = text; 
</script> 
</body> 
</html> 

를 DOM 함수에 대한 자세한 정보를 위해, 나는 mdn을 통해 바이올린을 켜는 것을 권 해드립니다.

+0

예. 나는 사과를 중요하게 생각했습니다. 감사합니다. 많이 감사합니다. – user2854720

0

텍스트 변수가 for 루프의 범위에서 트랩됩니다. for 루프를 해결이 바이올린의 외부에서 입증 된 바와 같이,이 라인을 추가 :

http://jsfiddle.net/7z0qonb3/

var text = '';