AB两个数组对象对象中都有参数oid和typeid,用oid和typeid做比较,如果A中有B就在A数组去掉B
时间: 2024-03-26 22:35:45 浏览: 102
可以使用双重循环,先遍历B数组,再在A数组中查找是否有相同的oid和typeid,有则将该元素从A数组中删除。具体代码如下:
```python
for b in B:
for a in A:
if a['oid'] == b['oid'] and a['typeid'] == b['typeid']:
A.remove(a)
```
注意,这种方法在删除元素时可能会影响A数组的索引,因此删除操作应该改为标记要删除的元素,最后再一次性删除。另外,如果A、B数组中的元素过多,这种双重循环的方法可能会比较耗时,可以考虑使用哈希表等数据结构进行优化。
相关问题
AB两个数组对象对象中都有参数oid和typeid,用oid和typeid做比较,如果B在A中没有就将没有的数据放入一个新数组
可以使用 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` 中没有的对象。
AB两个数组对象,两个对象中有oid和typeid属性,如果B的oid和typeid和A中的有相同的则将A中这个对象去除
可以使用双重循环,先遍历B数组,再在A数组中查找是否有相同的oid和typeid,有则将该元素从A数组中删除。具体代码如下:
```javascript
for (let i = 0; i < B.length; i++) {
for (let j = 0; j < A.length; j++) {
if (A[j].oid === B[i].oid && A[j].typeid === B[i].typeid) {
A.splice(j, 1);
j--;
}
}
}
```
注意,这种方法在删除元素时可能会影响A数组的索引,因此删除操作应该改为标记要删除的元素,最后再一次性删除。另外,如果A、B数组中的元素过多,这种双重循环的方法可能会比较耗时,可以考虑使用哈希表等数据结构进行优化。
阅读全文