请考虑以下代码:
const promotions = [{ Id: 14 }, { Id: 255 }, { Id: 23 }, { Id: 56 }];
const timePromotionIds = [255,56];
const promos = promotions.find(promotion => {
return promotion.Id === timePromotionIds.map(timePromotionId => {
return timePromotionId;
});
});
我想在促销中返回与timePromotionIds数组中的ID匹配的对象。
我也试过了:
const promos = promotions.find(promotion => {
return timePromotionIds.map(timePromotionId => {
return promotion.Id === timePromotionId;
});
});
哪个让我成为第一个对象,而不是任何其他对象。有点好但不太好。
这可能吗?我显然做错了什么!
由于 迈克尔
答案 0 :(得分:0)
您可以使用filter
方法过滤出来自timePromotionIds
数组的contains
内容的对象。
const promotions = [{ Id: 14 }, { Id: 255 }, { Id: 23 }, { Id: 56 }];
const timePromotionIds = [255,56];
const promos = promotions.filter((promo) => {
return timePromotionIds.includes(promo.Id);
});
console.log(promos);
结果:
[Object { Id=255}, Object { Id=56}]
请注意,因为filter
会返回您在调用contains
方法后返回元素的过滤元素。