You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript/Vue.js中使用for-in循环无法修改对象属性值如何解决

问题原因

你的for-in循环存在基础语法错误:

  • for...in 迭代对象时,property 变量拿到的是属性名字符串,不是属性本身的引用
  • 你写的property = undefined只是把这个临时字符串变量赋值为undefined,完全没有操作到this.newGame对象上的对应属性

所以循环执行完原对象没有任何变化,你后面手动给每个属性赋值的写法是直接操作对象属性,所以能正常生效。

正确实现方式

修改for-in循环即可,不需要逐个手动写属性赋值:

// 修复后的for-in写法
for (let property in this.newGame) {
  // 通过对象[属性名]的语法给对应属性赋值
  this.newGame[property] = undefined
}

如果要避免for-in可能遍历到原型链属性的问题,还可以用更稳妥的写法:

Object.keys(this.newGame).forEach(key => {
  this.newGame[key] = undefined
})

内容的提问来源于stack exchange,提问作者za1234ki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 05:27:00