gpt4 book ai didi

javascript - 重置对象键值

转载 作者:行者123 更新时间:2023-11-30 08:25:13 24 4
gpt4 key购买 nike

我今天来这里是因为我自己无法解决问题。我有以下对象:

var obj = {
"type": "name",
"param1": 10,
"param2": "text",
"param3": "more_text",
"param4": 20
}

现在我想做的是将每个键持有的所有值重置为 0,以便下次我调用该对象时,所有值都重置为 0

我已经尝试过但不起作用的是以下内容:

Object.prototype.reset = function(){
for(var i in this){
if(typeof this[i] != 'function'){
if(i == 'type'){
i = this[i];
}
else{
i = 0;
}
}
}
}

在所有键中,我只希望'type'保持其值,而其余的应重置为0;

注意:

if(typeof this[i] != 'function'){

是因为某些原因,this[i] 返回方法的源代码,我想避免陷入其中。如果有任何解决方案,那就太好了,但我没能解决这个问题。

最终结果应该是这样的:

var obj = {
"type": "name",
"param1": 10,
"param2": "text",
"param3": "more_text",
"param4": 20
}

obj.reset()

var obj = {
"type": "name",
"param1": 0,
"param2": 0,
"param3": 0,
"param4": 0
}

最佳答案

您应该引用对象值 this[i] 而不是属性 i

你的代码应该是这样的:

var obj = {
"type": "name",
"param1": 10,
"param2": "text",
"param3": "more_text",
"param4": 20
}

Object.prototype.reset = function() {
for (var i in this) {
if (typeof this[i] != 'function') {
if (i == 'type') {
i = this[i];
} else {
this[i] = 0;
}
}
}
}

obj.reset();

console.log(obj);

关于javascript - 重置对象键值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46850716/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com