登录
首页 >  文章 >  前端

JS数组对象合并:相同ID和Name的技巧

时间:2025-03-01 10:18:25 172浏览 收藏

本文介绍如何高效合并JavaScript数组对象。 针对具有相同id和name属性的数组对象,例如[{id:1, name:'小明', list:{id:66}}],文章提供了一种利用`reduce`方法和对象键值对的解决方案,将相同id和name的对象合并,并将list属性值合并成数组。该方法简洁高效,避免了不必要的JSON转换,并能有效处理list属性为非数组的情况,最终得到预期结果[{id:1, name:'小明', list:[{id:66}]}],提升代码可读性和效率。 学习此方法能有效解决JavaScript数组对象合并难题,提高开发效率。

如何将相同id和name的JS数组对象合并成新的数组对象?

JavaScript数组对象合并:根据id和name属性聚合数据

本文介绍如何将具有相同idname属性的JavaScript数组对象合并成新的数组对象。 假设我们有一个如下所示的数组:

const result = Object.values(arr.reduce((acc, { id, name, list }) => {
  const key = `${id}-${name}`; // 使用id和name组合成唯一的key
  if (!acc[key]) {
    acc[key] = { id, name, list: Array.isArray(list) ? list : [list] };
  } else {
    acc[key].list.push(list);
  }
  return acc;
}, {}));

这段代码首先使用reduce方法迭代数组,并使用idname的组合作为键创建一个对象。如果键不存在,则创建一个新的对象,并将list属性转换为数组;如果键已存在,则将新的list对象添加到现有数组中。最后,使用Object.values方法将结果对象转换为数组。 这种方法比原文提供的代码更清晰易懂,并且避免了不必要的JSON字符串转换。

这个方法更有效率和可读性,并且处理了list属性可能不是数组的情况。 它确保了最终结果的正确性和一致性。

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于文章的相关知识,也可关注golang学习网公众号。

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>