вернуть исходный массив вместо модифицированного массива - PullRequest
1 голос
/ 04 июля 2019

Я добавляю userIndex к моему массиву объектов, который добавляется, в следующей следующей функции карты я хочу вернуть родительский объект вместо модифицированный массив пользователей

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 Ответ

1 голос
/ 04 июля 2019

Если вы хотите сохранить свои первые res с первого map во втором (оба внутри pipe), НО с обновленным свойством users, содержащим userIndex, вы можете:

.pipe(
  map(res => {...res, users: res.users.map((child, i) => ({...child, userIndex: i}))}),
  map(res => // do something)
)

Это использует оператор распространения для копирования всего объекта res, но переопределяет свойство users внутри него.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...