Использование if / else для определения const в Javascript - PullRequest
0 голосов
/ 06 июня 2018

Я использую const в функции для определения нескольких переменных следующим образом

const printBlock.format({
  name : this.matchedData.clientName,
  date : this.matchedData.jobDate,
  destination : this.matchedData.address,
  apartment : this.matchedData.address2,
  stateZip : this.matchedData.zipcode
})

С тех пор я распечатываю все эти вещи, чтобы они 'объявлен.Однако некоторые данные не имеют номера квартиры, поэтому они будут отображаться как:

Джон Доу

6/6/2018

135 Testdemo Avenue

null

NY 11111

Можно ли использовать функцию if при объявлении констант, чтобы сделать так, чтобы:

if (this.matchedData.address2 == null){
//Do nothing
} else {
apartment : this.matchedData.address2,
}

Ответы [ 4 ]

0 голосов
/ 06 июня 2018

const printBlock({...}) выдаст ошибку, потому что это неверный способ инициализации константы.Если printBlock является функцией, почему бы не обрабатывать нулевые значения в теле printBlock?

function printBlock(obj) {
    for (var prop in obj) {
        if (obj[prop]) {
            console.log(obj[prop]); // or do whatever you mean by 'print'
        }
    }
}
0 голосов
/ 06 июня 2018

Вы можете использовать Object.assign и проверить с помощью свойства, а если нет null, взять объект для назначения.

printBlock(Object.assign(
    {
        name: this.matchedData.clientName,
        date: this.matchedData.jobDate,
        destination: this.matchedData.address,
        apartment: this.matchedData.address2,
        stateZip: this.matchedData.zipcode
    }, 
    this.matchedData.address2 === null || { apartment: this.matchedData.address2 }    
));
0 голосов
/ 06 июня 2018

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

const a = {
  name : this.matchedData.clientName,
  date : this.matchedData.jobDate,
  destination : this.matchedData.address,
  stateZip : this.matchedData.zipcode
};

if (this.matchedData.address2 !== null){
  a.apartment : this.matchedData.address2;
}
0 голосов
/ 06 июня 2018

Нет, но вы можете использовать троичный

var object = {
  address: '1111',
  apartment : this.matchedData.address2 ? "" : this.matchedData.address2
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...