AB两个数组对象对象中都有参数oid和typeid,用oid和typeid做比较,如果B在A中没有就将没有的数据放入一个新数组
时间: 2024-03-26 20:35:41 浏览: 135
两个不同数据库之间的对象的比较,字段(参数)的比较,以及类型的比较.
可以使用 JavaScript 中的 `filter` 和 `find` 方法来实现。
假设有两个数组 `A` 和 `B`,每个数组中包含多个对象,每个对象都有 `oid` 和 `typeid` 两个参数,你可以按照以下方式筛选出在 `B` 中有但在 `A` 中没有的对象:
```javascript
const A = [/* ... */];
const B = [/* ... */];
// 筛选出在 B 中有但在 A 中没有的对象
const result = B.filter(bObj => !A.find(aObj => aObj.oid === bObj.oid && aObj.typeid === bObj.typeid));
```
这段代码中,我们首先使用 `filter` 方法筛选出在数组 `B` 中满足条件的对象,即在 `A` 中没有的对象。具体来说,我们使用 `find` 方法来查找在 `A` 中是否有与当前对象 `bObj` 的 `oid` 和 `typeid` 值相同的对象。如果 `find` 方法返回的是 `undefined`,说明在 `A` 中没有这个对象,也就是这个对象是在 `B` 中有但在 `A` 中没有的。然后我们使用 `!` 取反运算符将 `find` 的返回值转换成布尔值,即真正意义上的“在 `A` 中没有这个对象”,作为 `filter` 的筛选条件。
最终,`result` 数组中就包含了所有在 `B` 中有但在 `A` 中没有的对象。
阅读全文