Заменить вложенный объект на map и object.assign - PullRequest
0 голосов
/ 29 сентября 2018

У меня есть такой объект, как -

{
    "year2018": {
        "student": {
            "class8": [
                {
                    "email": "bob.manuel@gmail.com",
                    "fullName": "Bob Manuel"
                },
                {
                    "email": "Sam.manuel@gmail.com",
                    "fullName": "Sam Manuel"
                }
            ],
            "class7": [
                {
                    "email": "mona@gmail.com",
                    "fullName": "Mona kelly"
                }
            ]
        },
        "fee": {
            "code": "f1",
            "name": "International"
        },
        "campus": {
            "name": "ABC",
            "sqft": 1000
        }
    }
}

Вышеуказанный объект прибывает из службы как - this.getSettings (). Take (1)

Теперь у меня есть новый объекткак-

"class7": [
                {
                    "email": "mona@gmail.com",
                    "fullName": "Mona kelly"
                },
                {
                    "email": "nikki@gmail.com",
                    "fullName": "Nikki Nona"
                }
            ]

Я хочу заменить этот объект в исходном объекте, поэтому мой новый объект выглядит как

{
    "year2018": {
        "student": {
            "class8": [
                {
                    "email": "bob.manuel@gmail.com",
                    "fullName": "Bob Manuel"
                },
                {
                    "email": "Sam.manuel@gmail.com",
                    "fullName": "Sam Manuel"
                }
            ],
            "class7": [
                {
                    "email": "mona@gmail.com",
                    "fullName": "Mona kelly"
                },
                {
                    "email": "nikki@gmail.com",
                    "fullName": "Nikki Nona"
                }
            ]
        },
        "fee": {
            "code": "f1",
            "name": "International"
        },
        "campus": {
            "name": "ABC",
            "sqft": 1000
        }
    }
}

Мой текущий код выглядит как -

var KEY = year2018, key1= student, key2 = class7;
const saveStream = this.getSettings().take(1).map(settings => ({ [KEY]: Object.assign(settings, { [key1]: value }) })).flatMap(dt => this.http.put(this.url, dt).map(res => dt)).pluck(KEY).share();

.Нотация не работает для меня, я хочу использовать ключ переменной

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