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

如何根据userObject是否为空向数组中条件性添加对象

按需构建新数组的实现方案

原始数据与当前写法

初始数据

const array1 = [{id:1,name:'john'},{id:2,name:'peter'}];
const userObject={};

当前的数组构建方式

const newarray =[...array1, userObject];

需求说明

当userObject是空对象{}时,新数组仅保留array1的所有元素;若userObject包含属性,则将其追加到新数组末尾。

可行解决方案

方案1:条件扩展运算符

利用扩展运算符处理空数组的特性,结合空对象判断逻辑:

const newarray = [
  ...array1,
  ...(Object.keys(userObject).length > 0 ? [userObject] : [])
];

方案2:数组concat方法

通过concat方法的特性,传入空数组不会改变原数组内容:

const newarray = array1.concat(
  Object.keys(userObject).length > 0 ? userObject : []
);

方案3:先复制再条件追加

可读性更强的写法,适合后续可能扩展逻辑的场景:

const newarray = [...array1];
if (Object.keys(userObject).length > 0) {
  newarray.push(userObject);
}

空对象判断的补充说明

如果userObject可能存在继承的可枚举属性,可改用Object.entries(userObject).length > 0或Object.getOwnPropertyNames(userObject).length > 0来判断,避免误判。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 00:45:32