返回原始数组而不是修改后的数组

时间:2019-07-04 10:14:45

标签: javascript angular rxjs

我正在向要添加的对象数组中添加userIndex,在随后的下一个map函数中,我想返回父对象而不是 修改的用户数组

var object = {
   users: [{}, {}, {}, {}]
}

 @Effect()
    handleResult$: Observable<Action> = this.actions$
        .map(action => action.payload)
        .mergeMap(params =>
            this.service.search(memberparams)
                .pipe(
                    map(res => res.users.map((child, i) => ({ ...child, userIndex: i }))),
                    map(res => new fAct.done(res)) // Here the res points to res.users, i want the res to original one(parent object)
                )
                .catch(error => of(new fAct.failure(error)))
        );

1 个答案:

答案 0 :(得分:1)

如果要将第一个res的第一个map保留到第二个pipe中,则将users属性的BUT更新为包含{{1 }},您可以:

userIndex

这使用散布运算符复制整个.pipe( map(res => {...res, users: res.users.map((child, i) => ({...child, userIndex: i}))}), map(res => // do something) ) 对象,但覆盖其中的res属性。