javascript - 在javascript中组合两个数组但省略公共值
问题描述
我有两个数组。
数组 1:一个数组是一组对象:
arr1 = [{id:1, age:10}, {id:2, age:12}]
数组 2:第二个数组只是一个 id 数组:
arr2 = [3,4,1,5,2]
我的目标是组合这两个数组,但首先从第一个数组中获取对象,然后将第二个数组中的元素加入其中,只获取 arr1 中不存在的 id。第二个数组元素需要转换为对象。上述示例的最终结果将是:
newArray = [{id:1, age:10}, {id:2, age:12}, {id:3}, {id:4}, {id:5}]
考虑到对象和整数作为数组项的混合,我真的很困惑如何做到这一点。
解决方案
您要做的是循环遍历arr2
该数组中的每个条目(整数),检查是否arr1
包含一个对象,其中该id
属性等于arr2
您正在处理的条目。如果不是这种情况,那么您添加 ( push
) 一个新元素到arr1
该id
属性设置为您从中处理的元素的值的位置arr2
。
你可以用这样的一些javascript来做到这一点:
let arr1 = [{id:1, age:10}, {id:2, age:12}]
let arr2 = [3,4,1,5,2]
for (var i = 0; i < arr2.length; i++) {
let id = arr2[i];
if (!arr1.find(x => x.id === id)) {
arr1.push({ id: id });
}
}
console.log(arr1)
推荐阅读
- python - 直线和矩形的交点
- swift - 无法从 google Firestore 获取数据,出现 Thread 1: EXC_BAD_INSTRUCTION 错误
- javascript - 使用 JavaScript 函数和复选框的 Google 表格
- python - 使用 Python 请求删除 Kubernetes ConfigMap 键
- java - Java 客户端无法连接到在 localhost 上运行的 Redis Sentinel
- php - PHP for循环中允许的内存大小耗尽
- c++ - C++ - 将静态二维数组传递给函数
- java - 每次在 API 23 上运行此应用程序时都会出错。我是初学者
- python - 自动发现 python 装饰器
- sql-server - 将 XML 数据读入 SQL Server 表