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

JS对象数组合并:相同属性保留第二个值,缺失属性取第一个值

实现方案

核心逻辑

按要求,合并规则为:

  • 仅保留第一个数组对象users[0]上存在的属性
  • 同名属性优先使用第二个数组对象products[0]的值
  • 第二个对象独有的属性不纳入最终结果

代码实现

首先修正原始代码的语法错误(数组赋值用等号、补全属性间逗号):

let users = [
  {
    "id": "some#",
    "name": "some name",
    "data": "somedata"
  }
];

let products = [
  {
    "product": "some#",
    "name": "abc"
  }
];

兼容写法(所有JS环境可用)

const user = users[0];
const product = products[0];
const result = {};

for (const key in user) {
  if (user.hasOwnProperty(key)) {
    result[key] = product.hasOwnProperty(key) ? product[key] : user[key];
  }
}

简洁写法(ES2019+ 支持)

const result = Object.fromEntries(
  Object.entries(users[0]).map(([k, v]) => [k, products[0][k] ?? v])
);

输出结果

执行后result的内容和预期完全一致:

{
  "id": "some#",
  "name": "abc",
  "data": "somedata"
}

内容的提问来源于stack exchange,提问作者Antonio Pavicevac-Ortiz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 05:24:03