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

不使用concat合并JavaScript数组:为数组对象添加键值对

解决方案:将数组元素作为键添加到另一数组的对象中

嘿,我明白你的需求了——不是用concat做简单的数组拼接,而是要把array1里的每个字符串作为新的键值对,添加到array2的每个对应对象里对吧?这用JavaScript的数组和对象操作就能轻松实现,我给你分享几个实用的方案:

方案1:使用map+reduce(纯函数式,不修改原数组)

这种方式会返回一个全新的数组,不会改动原始的array2,非常适合需要保留原数据的场景:

// 定义你的两个数组
const array1 = [ "Basket Abandonment", "Downloads", "App Version" ];
const array2 = [ 
  { 
    bottom: { comp : "", details: "3.1.39 22nd Jul 2015", status : "", title : "Previous Version", value : "8.7%" }, 
    top: { details: "3.1.40 25th August 2015", status: "", title: "Current Version", value: "91.3%" }
  }
  // 这里可以添加更多对象
];

// 执行合并操作
const mergedArray = array2.map(obj => {
  // 把array1的元素转换成键值对对象
  const newKeyPairs = array1.reduce((acc, key) => {
    acc[key] = ""; // 这里可以替换成你需要的默认值,比如null或者特定内容
    return acc;
  }, {});
  // 合并原对象和新键值对
  return { ...obj, ...newKeyPairs };
});

console.log(mergedArray);

方案2:使用map+forEach(更直观的写法)

如果你觉得reduce有点绕,用forEach遍历添加键值对会更易懂:

const mergedArray = array2.map(obj => {
  // 复制原对象,避免修改原始数据
  const newObj = { ...obj };
  // 遍历array1,给新对象添加每个键
  array1.forEach(key => {
    newObj[key] = ""; // 同样可以自定义值
  });
  return newObj;
});

调整说明

如果你的需求是把这些键添加到array2对象里的bottom或top子对象中,只需要稍微修改代码即可:

const mergedArray = array2.map(obj => {
  const newObj = { ...obj };
  // 给bottom子对象添加键
  array1.forEach(key => {
    newObj.bottom[key] = "";
  });
  // 给top子对象添加键(如果需要的话)
  array1.forEach(key => {
    newObj.top[key] = "";
  });
  return newObj;
});

内容的提问来源于stack exchange,提问作者Mark Hayden

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:05:11