Я думаю, что самый простой способ условно удалить свойство из объекта, как это, было бы использовать синтаксис rest с последующим возможным Object.assign
:
var a = {
firstName: "Tom",
lastName: "Simmon",
email: "tomsimmon@gail.com",
phone: "+36456",
passStatus: "",
query: "simple"
};
const { passStatus, ...newObj } = a;
if (passStatus) {
Object.assign(newObj, { passStatus });
}
console.log(newObj);
Вы можете сделать это в одну строку, уничтожив вычисляемое имя свойства, где имя свойства использует условный оператор для удаления свойства passStatus
, если оно существует, но это трудно понять, я бы не советовал:
var a = {
firstName: "Tom",
lastName: "Simmon",
email: "tomsimmon@gail.com",
phone: "+36456",
passStatus: "",
query: "simple"
};
const { [a.passStatus ? '' : 'passStatus']: _, ...newObj } = a;
console.log(newObj);