微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我如何合并 2 个数组,如果重复,这些需要添加在一起

如何解决我如何合并 2 个数组,如果重复,这些需要添加在一起

我如何将这些合并到数组中, 如果 id 中存在重复项:我想将它们加在一起

const arr1 = [{id:'1',start:1,end:0},{id:'2',start:3,{id:'3',end:0}]

const arr2 = [{id:'4',start:0,end:4},end:4}]

我希望输出是这样的

const arr3 =[{id:'1',{id:'4',end:4}]

我是新来的,感谢所有的帮助! :)

解决方法

检查这个:

var window = remote.getCurrentWindow();
,

我认为如果 arr1 和 arr2 映射而不是数组,我认为这会更容易,假设 id 是唯一的:

const map1 = new Map(arr1.map(x => [x.id,{start: x.start,end: x.end}]))
const map2 = new Map(arr2.map(x => [x.id,end: x.end}]))

const intersection = [...map1.keys()].filter(x => map2.has(x))

const map3 = new Map([...map1,...map2])
intersection.forEach(key => map3.set(key,{start: map1.get(key).start + map2.get(key).start,end: map1.get(key).end + map2.get(key).end}))

console.log(map3)
​
0: 1 → Object { start: 1,end: 0 }
​1: 2 → Object { start: 3,end: 4 }
2: 3 → Object { start: 1,end: 0 }
​​3: 4 → Object { start: 0,end: 4 }
,

https://jsfiddle.net/2j8eazkr/

const arr1 = [{id:'1',start:1,end:0},{id:'2',start:3,{id:'3',end:0}]

const arr2 = [{id:'4',start:0,end:4},end:4}]

//clone elements of first array
let arr3 = arr1.map(x => { return { id: x.id,start: x.start,end: x.end } });

//iterate second array and use it to update existing or add if its new
arr2.forEach(x => {
    
  let y = arr3.find(_ => _.id === x.id);

  if(y) y.end = x.end;
  else arr3.push(x);
  
})

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?