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

如何在JavaScript中移除对象里值为空数组的属性?

解决对象中空数组属性的移除问题

原代码里判断空数组的逻辑obj[propName] == []完全不生效,原因很简单:JavaScript里数组是引用类型,用==或者===比较的时候,比的是两个值的内存引用地址,而不是内容。你写的[]每次都是一个新的空数组引用,永远不可能和对象里的Actor数组引用相等,所以这个判断条件永远为false,自然删不掉空数组属性。

要正确判断空数组,需要两步:

  • 先确认当前属性值是数组:用Array.isArray(obj[propName])
  • 再确认数组长度为0:obj[propName].length === 0

修改后的clean函数如下:

function clean(obj) {
  for (var propName in obj) {
    const value = obj[propName];
    if (value === undefined || (Array.isArray(value) && value.length === 0)) {
      delete obj[propName];
    }
  }
  return obj;
}

测试调用clean(obj)后,原对象会变成{Rating:7.5},完全符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 19:12:21