合并观察值和字符串数组

时间:2019-11-26 14:03:29

标签: javascript rxjs

我知道forkjoin需要具有两个可观察值,但是,我有一个可观察值和一个字符串数组。字符串数组需要与可观察对象中的键/值匹配。如果该值不存在,则将基于可观察对象的形状添加新的可观察对象。

const arr = ["ABT", "ABC"]
this.http.get<[]>(`this.someUrl`,)
    .pipe(
        map((result: []) => {
            // result= {userId: "user123", symbol: "ABC", comments: "this is text"}
            return res;
        }),
    );

渴望会返回

{userId: "user123", symbol: "ABT", comments: ""},
{userId: "user123", symbol: "ABC", comments: "this is text"}

一种方法是什么?

1 个答案:

答案 0 :(得分:0)

如果我对您的理解正确,那么您的目标是:

const arr = ["ABT", "ABC"]
this.http.get<[]>("this.someUrl",)
    .pipe(
        map((result: []) => {
            return arr.map(value => {
                const obj = result.find(a => a.symbol === value);
                if (obj) {
                   return {...result}
                } else {
                   return {...result, symbol: value, comments: ""}
                }
           });
        }),
    );

我仍然不明白您要达到的目标,但这应该可以满足您的期望。对于您的问题,这可能也不是最有效的解决方案。