Javascript 将js对象中的所有值更改为0
是否可以将对象中的所有值更改为0,而不必逐个键入它们 以下是对象示例:Javascript 将js对象中的所有值更改为0,javascript,arrays,loops,object,Javascript,Arrays,Loops,Object,是否可以将对象中的所有值更改为0,而不必逐个键入它们 以下是对象示例: var obj = { sth: { sth1: 15, sth2: 25, sth3: 0 }, } 将对象sth的所有值设置为0,无需键入: obj.sth.sth1 = 0; obj.sth.sth2 = 0; obj.sth.sth3 = 0; 在上面的方法中,有超过100个值需要重置回0,这有点痛苦 此外,使用 document.getElementById(id1).innerHTML = o
var obj = {
sth: {
sth1: 15,
sth2: 25,
sth3: 0
},
}
将对象sth的所有值设置为0,无需键入:
obj.sth.sth1 = 0;
obj.sth.sth2 = 0;
obj.sth.sth3 = 0;
在上面的方法中,有超过100个值需要重置回0,这有点痛苦
此外,使用
document.getElementById(id1).innerHTML = obj.sth.sth1;
document.getElementById(id2).innerHTML = obj.sth.sth2;
document.getElementById(id3).innerHTML = obj.sth.sth3;
等等,在用户重置值后更新这些值。。。为此,我考虑制作一个数组:
var ids = [
"sth1",
"sth2",
"sth3"
]
然后:
for( i = 0; i < 3; i ++) {
document.getElementById(ids[i]).innerHTML = "0";
}
(i=0;i<3;i++)的{
document.getElementById(id[i]).innerHTML=“0”;
}
更新HTML文档的方法好吗?我仍然需要在一个数组中键入所有ID和值,但至少它会更透明。也许有更好的方法?我假设,要更新一个对象中的值,我还需要一个循环,但我没有想到。。。有什么想法吗?谢谢 您可以使用单个循环,并将其分配给所有属性
0
,并使用属性的值设置元素
使用
- 用于获取对象的所有自有属性
- 用于迭代数组
var obj={sth:{sth1:15,sth2:25,sth3:0};
对象。键(obj.sth)。forEach(函数(键){
对象某物[键]=0;
document.getElementById(key).innerHTML=obj.sth[key];
});
控制台日志(obj)代码>
foo
福
foo要在对象中迭代,请执行以下操作:
for(var key in obj.sth) {
obj.sth[key] = 0;
}
要给html赋值,可能需要为元素设置一个特殊的类,然后对所有元素进行迭代,这对您的帮助更大,而不是使用id
for (prop in obj.sth) {
if(obj.sth.hasOwnProperty(prop)){
obj.sth[prop] = 0;
}
}
0!=='0'
…可能会帮助您getElementById(k)
中的k
是什么?键入错误,应该是key
这是私有函数吗?我是JS新手,并不完全了解如何使用它们,但我也会尝试这种方法,看看哪种方法效果最好。谢谢你是说getElementsByClassName?以前从来没有这样想过,这实际上是一个非常好的主意!我会马上调查的。我决定接受这个答案。我完全能理解它的功能和工作原理。谢谢,也谢谢大家的帮助。