Javascript 使用for in在对象中循环
有人能帮我吗?被困了一段时间,我需要做的就是打印出我的对象的属性,有人知道为什么这不起作用吗Javascript 使用for in在对象中循环,javascript,for-in-loop,Javascript,For In Loop,有人能帮我吗?被困了一段时间,我需要做的就是打印出我的对象的属性,有人知道为什么这不起作用吗 <!DOCTYPE html> <html> <head> <script type="text/javascript"> function person(name, dateOfBirth, nationality){ this.name = name; this.dateOfBirth = dateOfBir
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function person(name, dateOfBirth, nationality){
this.name = name;
this.dateOfBirth = dateOfBirth;
this.nationality = nationality;
}
var mark = new person("mark oshea",25,"irish");
var text = "";
for(x in mark) {
text += mark[x];
}
</script>
</body>
</html>
职能人员(姓名、出生日期、国籍){
this.name=名称;
this.dateOfBirth=出生日期;
国籍=国籍;
}
var mark=新人(“mark oshea”,25,“爱尔兰”);
var text=“”;
用于(x英寸标记){
文本+=标记[x];
}
A用于。。。在
中,循环将循环给定数组/对象的所有属性。
您尝试使用属性(您实际需要的属性)访问对象
在您的情况下,text+=x如果需要属性,代码>应该是您要查找的内容
如果要获取对象的值,可以使用forEach
例如:
mark.forEach( function(value){
text += value;
});
您的html缺少结束/开始元素,并且您没有声明“var text”。
试着这样做:
<!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>
人
职能人员(姓名、出生日期、国籍){
this.name=名称;
this.dateOfBirth=出生日期;
国籍=国籍;
}
var text=“”;
var mark=新人(“mark oshea”,25,“爱尔兰”);
用于(x英寸标记){
text+=标记[x]+“”;
}
var person_段落=document.getElementById(“person”);
person_paragration.innerHTML=文本;
有关DOM函数的更多信息,我建议您进行修改。您的文本变量被困在For循环的范围内。在for循环之外添加这一行可以解决此问题,如本小提琴所示:
标记[x]应该是x。你是说打印属性的值还是属性的名称?@Sebas我把这个问题解释为属性的名称。什么是“不起作用”这个问题的另一个解决方案是text=Object.keys(mark)。join(“”)
,避开你的问题将把foo的键放入x,而不是值。您将构建一个字符串,其中包含name dateofBirth national
,而不是mark oshea 25 irish
@MarcB“打印属性”,我认为这意味着属性的名称而不是值。询问者应该澄清是的,但是你说“循环所有的值,…而不是键”。这完全是逆来顺受,我的意思是,我很重视我的道歉。谢谢大家,非常感谢。
var text = '';