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

如何仅清除JavaScript对象的属性值?

解决对象属性值清空的问题

我来帮你搞定这个问题!你之前的尝试没成功,核心原因是没搞清楚遍历过程中变量和原对象属性的关系——咱们先拆解下为什么那些方法不行:

  • 不管是$.each里的value = '',还是Object.values(obj).forEach里修改value,这里的value都是原对象属性值的副本(因为你的值都是字符串这种基本类型,是按值传递的),修改这个副本根本不会影响原对象里的属性。
  • delete value就更不对了,你删除的只是遍历函数里的局部变量,和原对象半毛钱关系都没有。

接下来给你几个靠谱的解决方案,任选其一就行:

方案1:原生JS用Object.keys遍历(最推荐)

直接拿到对象的所有键,然后通过键直接修改原对象的属性:

const obj = {"foo":"bar", "foo2":"bar2", "foo3":"bar3"};
Object.keys(obj).forEach(key => {
  obj[key] = '';
});

方案2:用for...in循环(兼容旧环境)

如果需要兼容一些老浏览器,用for...in更稳妥,记得加hasOwnProperty避免遍历原型链上的属性:

const obj = {"foo":"bar", "foo2":"bar2", "foo3":"bar3"};
for (const key in obj) {
  if (obj.hasOwnProperty(key)) {
    obj[key] = '';
  }
}

方案3:用jQuery的$.each正确写法

要是你习惯用jQuery,别去修改value参数,直接通过key操作原对象:

const obj = {"foo":"bar", "foo2":"bar2", "foo3":"bar3"};
$.each(obj, function(key) {
  obj[key] = '';
});

这几个方法都能直接修改原对象的属性,把所有值清空成空字符串。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 10:00:58