首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

javascript使用自定义键合并两个数组

JavaScript使用自定义键合并两个数组可以使用以下几种方法:

方法一:使用reduce()方法

代码语言:txt
复制
function mergeArraysByKey(arr1, arr2, key) {
  return arr1.reduce((result, obj) => {
    const foundObj = arr2.find(item => item[key] === obj[key]);
    if (foundObj) {
      result.push(Object.assign({}, obj, foundObj));
    }
    return result;
  }, []);
}

const array1 = [{ id: 1, name: 'John' }, { id: 2, name: 'Jane' }];
const array2 = [{ id: 1, age: 25 }, { id: 2, age: 30 }];
const mergedArray = mergeArraysByKey(array1, array2, 'id');
console.log(mergedArray);

该方法使用reduce()方法迭代arr1数组,并使用find()方法在arr2数组中找到与当前对象具有相同key值的对象。如果找到匹配的对象,则使用Object.assign()方法将两个对象合并,并将合并后的对象推入结果数组中。

方法二:使用map()方法和find()方法

代码语言:txt
复制
function mergeArraysByKey(arr1, arr2, key) {
  return arr1.map(obj => {
    const foundObj = arr2.find(item => item[key] === obj[key]);
    return foundObj ? { ...obj, ...foundObj } : obj;
  });
}

const array1 = [{ id: 1, name: 'John' }, { id: 2, name: 'Jane' }];
const array2 = [{ id: 1, age: 25 }, { id: 2, age: 30 }];
const mergedArray = mergeArraysByKey(array1, array2, 'id');
console.log(mergedArray);

该方法使用map()方法遍历arr1数组,并使用find()方法在arr2数组中查找具有相同key值的对象。如果找到匹配的对象,则使用展开运算符(...)将两个对象合并,否则返回原始对象。

方法三:使用forEach()方法和Object.assign()方法

代码语言:txt
复制
function mergeArraysByKey(arr1, arr2, key) {
  const mergedArray = [];
  arr1.forEach(obj1 => {
    arr2.forEach(obj2 => {
      if (obj1[key] === obj2[key]) {
        mergedArray.push(Object.assign({}, obj1, obj2));
      }
    });
  });
  return mergedArray;
}

const array1 = [{ id: 1, name: 'John' }, { id: 2, name: 'Jane' }];
const array2 = [{ id: 1, age: 25 }, { id: 2, age: 30 }];
const mergedArray = mergeArraysByKey(array1, array2, 'id');
console.log(mergedArray);

该方法使用forEach()方法嵌套遍历arr1和arr2数组,并使用Object.assign()方法将具有相同key值的对象合并到结果数组中。

推荐的腾讯云相关产品和产品介绍链接地址:

  • 云函数(Serverless Cloud Function):https://cloud.tencent.com/product/scf
  • 云开发(Tencent CloudBase):https://cloud.tencent.com/product/tcb
  • 云数据库 MongoDB 版(TencentDB for MongoDB):https://cloud.tencent.com/product/tcdb-mongodb
  • 云存储(Tencent Cloud Object Storage,COS):https://cloud.tencent.com/product/cos
  • 云网络(Virtual Private Cloud,VPC):https://cloud.tencent.com/product/vpc
  • 云安全(Tencent Security Hub):https://cloud.tencent.com/product/security-hub
  • 云视频(Tencent Cloud Video):https://cloud.tencent.com/product/vod
  • 云音乐(Tencent Cloud Music):https://cloud.tencent.com/product/tcm
  • 云智能语音(Tencent Cloud Speech):https://cloud.tencent.com/product/stt
  • 物联网开发平台(Tencent IoT Explorer):https://cloud.tencent.com/product/explorer
  • 云原生应用引擎(Tencent Cloud Native Application Engine):https://cloud.tencent.com/product/tcnae
  • 云区块链服务(Tencent Blockchain as a Service,BaaS):https://cloud.tencent.com/product/baas
  • 腾讯云元宇宙:目前腾讯云暂无元宇宙相关产品。

注意:以上推荐的腾讯云产品仅供参考,具体选择和使用需要根据实际需求进行评估。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券