您好我是JavaScript新手,并且一直在做一些练习。我正在努力循环遍历Object的属性并将每个属性附加到DOM。有人可以提供一些指导吗?我尝试通过其他问题拼凑这个,但不知道我哪里出错了?
var person = {
firstName: "john",
lastName: "doe",
age: 45,
placeOfBirth: "somewhere"
}
for(var i = 0; i < person.length; i++) {
if(hasOwnProperty(person[i])) {
var p = document.createElement("p");
p.innerHTML = person[i];
document.body.appendChild(p)
}
}
答案 0 :(得分:0)
你不需要from datetime import datetime, timezone
print(datetime(1970, 1, 1, tzinfo=timezone.utc))
,因为key只是属性。
所以如果你使用person.hasOwnProperty(key)
条件,它总是如此。
if
答案 1 :(得分:0)
您正在将person
视为数组。对象没有长度。使用for in
迭代对象属性
尝试:
var person = {
firstName: "john",
lastName: "doe",
age: 45,
placeOfBirth: "somewhere"
}
for(key in person) {
if(person.hasOwnProperty(key)) {
var p = document.createElement("p");
p.innerHTML = person[key];
document.body.appendChild(p)
}
}
另请注意hasOwnProperty()
的 DEMO 强>
答案 2 :(得分:0)
您正在寻找的是:
for(var i in person){
if(person.hasOwnProperty(i)){
var p = document.createElement("p");
p.innerHTML = person[i];
document.body.appendChild(p);
}
}
但是,因为i in person
引用了对象中的任何内容,我们可以完全删除if(person.hasOwnProperty(i))
,因为它始终具有该属性。
你可能也想考虑使用密钥名称,因为这只会附加值,并且不会对与之关联的密钥执行任何操作。
尝试添加:
p.innerHTML = i + ': ' + person[i];
这应该为每个段落元素生成“Key:value”输出。