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

如何用Lodash移除对象中空数组属性,保留布尔值与整数?

移除对象中空数组属性,保留整数与布尔值

问题背景

给定对象:

const objectExample = {
  id: 2132131,
  title: 'Some title',
  tags: [],
  isFree: true,
}

需要移除值为空数组的属性(如tags),但保留id(整数)和isFree(布尔值)这类属性。

尝试用_.omitBy(objectExample, _.isEmpty)时,因_.isEmpty对整数、布尔值也返回true,导致目标属性被误删;尝试_.omitBy(transformedSession, _.isArray && _.isEmpty)时,仅_.isArray生效,无法过滤空数组。

解决方案

方式1:用_.overEvery组合双条件

Lodash的_.overEvery可以把多个断言函数组合成一个,只有当所有条件都满足时才返回true:

_.omitBy(objectExample, _.overEvery([_.isArray, _.isEmpty]))

这个写法会仅过滤既是数组又是空数组的属性,完美避开整数和布尔值。

方式2:直接写自定义判断函数

如果觉得_.overEvery不够直观,直接用箭头函数写判断逻辑更清晰:

_.omitBy(objectExample, val => _.isArray(val) && _.isEmpty(val))

逻辑和上面完全一致,先判断值是否为数组,再判断是否为空,两个条件都满足才会被移除。

最终结果

执行上述任一代码后,得到的对象为:

{
  id: 2132131,
  title: 'Some title',
  isFree: true,
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 17:05:31