【发布时间】:2021-03-05 08:37:35
【问题描述】:
我有两个数组,其中一个是这样的:
const array1 = [
Object {
"ItemId": 1,
},
Object {
"ItemId": 2,
},
]
其他数组是:
const array2 = [
Object {
"obj1": Object {
"Id": 4736,
},
"obj2": Object {
"ItemId": 1,
},
}
]
我想获取array1 中的项目,这些项目在array2 的obj2 中不等于。
我试过了,但是没用
array1.filter(function (item) {
return array2.map((x) => {
return x.obj2 != item;
});
【问题讨论】:
-
array2 不是一个有效的数组吗?复制/粘贴时出了什么问题?
-
三个问题立即引起了我的注意: 1. array1.filter 期待一个真实的值,而 array2.map 总是返回一个数组。在这种情况下,它将永远是真实的。 2. array2.map 只是用回调函数(x.obj2 != item)的结果创建一个新数组。这将返回一个填充了布尔值的数组。 [true, false, true] 3. 比较看起来对我来说。两个对象(item 和 x.obj)是否引用同一个对象引用?如果没有,您可能宁愿将 item.ItemId 与 obj2.ItemId 进行比较。
-
@webwelten 你是对的,它返回布尔值。这是我的错。其实我想得到对象。他们也指的是同一个对象。我也可以使用 ItemId 过滤
标签: react-native