如果两个数组具有相同的ownerId,如何将它们比较在一起
Posted
技术标签:
【中文标题】如果两个数组具有相同的ownerId,如何将它们比较在一起【英文标题】:how to compare two arrays together if they have the same ownerId 【发布时间】:2020-06-08 16:11:06 【问题描述】:如果两个数组具有相同的 ownerId,我如何将它们比较在一起。 第一个数组是 userUserInfo 第二个是订单数组。我想比较它们是否具有相同的 ownerId。 2 阵列正在从 firebase 获取。 如果 ownerId === to the ownerId,我写的 newu 几乎没有编码
这些是我 console.log 中的数组
Array [
UserInfo
"adress": "Flat 76",
"dateofbirth": "26-09-1995",
"email": “testt@yahoo.com",
"id": "-M0s8z5kilepQfGaDarw",
"namee": “testt”,
"ownerId": "XS7ARDt5C8hKtQyTSrPh9oLKMUp2",
"phonenumber": "079112",
,
]
Array [
Order
"date": 2020-02-24T20:46:24.981Z,
"id": "-M0swr3CHlIJczaLxppg",
"items": Array [
Object
"productId": "-M0swATocaxb_VboxWrd",
"productPrice": 10,
"productTitle": "Water",
"quantity": 1,
"sum": 10,
,
],
"ownerId": "XS7ARDt5C8hKtQyTSrPh9oLKMUp2",
"productTitle": undefined,
"totalAmount": 10,
,
]
const OrderItem = props =>
const [isLoading, setIsLoading] = useState(false);
const [error, setError] = useState();
const [showDetails, setShowDetails] = useState(false);
const dispatch = useDispatch();
const orders = useSelector(state => state.orders.orders);
const userUserInfo = useSelector(state => state.userInfo.userUserInfo)
//const newu = userUserInfo.filter(prod=>prod.ownerId === 'XS7ARDt5C8hKtQyTSrPh9oLKMUp2')
console.log(userUserInfo)
console.log(orders)
return (
<Card style=styles.orderItem>
<View style=styles.summary>
<Text style=styles.totalAmount>£props.amount</Text>
/* <Text style=styles.totalAmount>props.date</Text> */
<Text style=styles.totalAmount>tprops.items.title</Text>
</View>
<Button
color=Colors.primary
title=showDetails ? 'Hide Details' : 'Show Details'
onPress=() =>
setShowDetails(prevState => !prevState);
/>
showDetails && (
<View style=styles.detailItems>
props.items.map(cartItem => (
<CartItem
key=cartItem.productId
quantity=cartItem.quantity
amount=cartItem.sum
title=cartItem.productTitle
/>
))
<FlatList
data=userUserInfo
keyExtractor=item => item.id
renderItem=itemData => (
<Profile
image=itemData.item.imageUrl
title=itemData.item.namee
price=itemData.item.email
phonenumber=itemData.item.phonenumber
adress=itemData.item.adress
quantityNeeded=itemData.item.dateofbirth
onSelect=() =>
selectItemHandler(itemData.item.id, itemData.item.namee);
>
</Profile>
) />
</View>
)
</Card>
);
;
【问题讨论】:
你需要展示这两个数组以及你想在这些数组中实现什么.. @SunilLama 我添加了数组 此时它的价值比较,UserInfo.ownerId===Order.ownerId
@SunilLama 感谢您的重播。我想过滤数组以仅显示那些 userUserInfo ho 订单。是写 const newu = userUserInfo.ownerId === orders.ownerId 这只会返回 true 而不是过滤器数组
userUserInfo
数组中是否有多个条目? IE。第一个数组是单个用户,您想从第二个数组中过滤所有与所有者 ID 匹配的订单?还是第一个中有多个条目,您想过滤第二个中的所有订单?
【参考方案1】:
结合使用 filter 和 some 数组方法。
这是一个例子:
const userInfo = [
"ownerId": "XS7ARDt5C8hKtQyTSrPh9oLKMUp2"
]
const order = [
"ownerId": "XS7ARDt5C8hKtQyTSrPh9oLKMUp2",
]
const res = userInfo.filter((
ownerId
) => order.some(x => x.ownerId === ownerId));
【讨论】:
以上是关于如果两个数组具有相同的ownerId,如何将它们比较在一起的主要内容,如果未能解决你的问题,请参考以下文章
如果它们具有相同的标题,如何组合数据表但将列添加在一起? (需要指导或资源)
为啥 exFAT 的“磁盘大小”比 NFTS 的大小要大,因为它们都具有相同的分配单元大小?
如何将两个估计器对象传递给 sklearn 的 GridSearchCV,以便它们在每个步骤中具有相同的参数?
Swift:如果数组的自定义对象元素具有相同的键,则合并它们