아무도 도와 줄 수 있습니까? 잠시만 붙어 있어야합니다. 내 객체의 속성을 인쇄 할 필요가있는 사람이면 누구나 왜이 기능이 작동하지 않는지 알 수 있습니까?for를 사용하여 객체를 반복하는 경우
답변
for ... in
루프는 지정된 배열/개체의 모든 속성을 반복합니다. 실제로 (원하는) 속성으로 개체에 액세스하려고 시도합니다.
귀하의 경우, text += x;
은 속성을 원하면 찾고자하는 것이어야합니다.
mark.forEach(function(value){
text += value;
});
거짓. 'for x in foo'는 foo의 KEYS를 값이 아닌 x에 넣을 것입니다. –
너는 'name o birthday of irish'가 아닌'name dateofBirth national'을 포함하는 문자열을 만들 것입니다. –
@MarcB "속성을 출력하십시오"나는 값이 아닌 속성의 이름을 의미한다고 생각했습니다. 묻는 사람은 –
는 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을 통해 바이올린을 켜는 것을 권 해드립니다.
예. 나는 사과를 중요하게 생각했습니다. 감사합니다. 많이 감사합니다. – user2854720
텍스트 변수가 for 루프의 범위에서 트랩됩니다. for 루프를 해결이 바이올린의 외부에서 입증 된 바와 같이,이 라인을 추가 :
var text = '';
마르크 [X]가 단지 X되어야한다. –
속성의 값이나 속성의 이름을 인쇄한다는 의미입니까? – Sebas
@Sebas 나는이 질문을 부동산의 이름으로 해석했다. –