Добавить свойство к объекту, только если оно не определено - PullRequest
0 голосов
/ 17 октября 2018

У меня есть следующий объект:

   let params = {
            limit: limit,
            offset: 15,
            status: "completed",
            product_id: this.route.snapshot.queryParams.product_id,
        };

Вышеуказанный объект содержит параметры, которые фильтруют мой источник данных.

this.route.snapshot.queryParams.product_id - это параметр запроса / получения

? Product_id = 123

Однако, если это значение отсутствует, оно не определено.Поэтому я не хочу добавлять product_id член к объекту параметров, если это значение не определено.

Если оно не определено, объект должен выглядеть следующим образом:

   let params = {
            limit: limit,
            offset: 15,
            status: "completed",
        };

Ответы [ 12 ]

0 голосов
/ 17 октября 2018

Вы можете сделать это с помощью деструктурирования объекта, как показано ниже

var param = {
            limit: 5,
            offset: 15,
            status: "completed",
            product_id: undefined,
        };
var { product_id, ...rest } = param

param = { ...(product_id && { product_id }), ...rest }
0 голосов
/ 17 октября 2018

Я не думаю, что вы можете сделать это inline, но

let params:object;
if ( this.route.snapshot.queryParams.product_id){
    params = {
            limit: limit,
            offset: 15,
            status: "completed",
            product_id: this.route.snapshot.queryParams.product_id,
        };
        }
else{
    params = {
            limit: limit,
            offset: 15,
            status: "completed",
        };  
}

выполнит работу.

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