gpt4 book ai didi

angular - 验证数组中的对象也存在于可观察数组中

转载 作者:搜寻专家 更新时间:2023-10-30 21:20:55 25 4
gpt4 key购买 nike

我想验证以下数组中的对象:

const payment1: Payment = new Payment('1000'); // 1000 = id
const payment2: Payment = new Payment('1001');

const paymentArray: Payment[];
paymentArray.push(payment1, payment2);

存在于我的可观察数组中:

payments$: Observable<Payment[]>;

我想要的是得到一个不可观察的 bool 值作为结果。

我尝试过使用过滤器管道和 map 进行一些操作,但不幸的是无法让它工作:

this.paymentArray.forEach(element => {
this.payments$.pipe(map(payments => payments.filter(payment => payment.id === element['id'])));
});

最佳答案

如果它是对象数组,则创建这些元素的映射以在过滤函数中进行比较。

ngOnInit() {

this.idsToFind = ['1000', '1231', '2323'];
const paymentArray: Payment[] = [];
const payment1: Payment = new Payment('1000'); // 1000 = id
const payment2: Payment = new Payment('1001');

paymentArray.push(payment1, payment2);

this.payments$ = of(paymentArray);

const idsMap = this.idsToFind.reduce(
(a, b) => { return { ...a, [b]: true } }, {}
);
console.log(idsMap);

this.payments$
.pipe(
map((payments) =>
payments.filter(
(payment: Payment) => idsMap[payment.id])
)
)
.subscribe((missings) => console.log(missings));

}

关于angular - 验证数组中的对象也存在于可观察数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57972709/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com