Нулевая проверка в выписке - PullRequest
0 голосов
/ 26 февраля 2019

Когда у меня есть нулевое значение в data.req, data.req.toLowerCase() выдает ошибку.Как я могу проверить условие вроде

if(data.req === null) {
    //do nothing
} else { 
    data.req.toLowerCase().indexOf(searchTerms.req) !== -1
}

// Как мне проверить наличие нуля только для data.req в приведенном ниже операторе возврата?

return data.client.toLowerCase().indexOf(searchTerms.client) !== -1
    && data.req.toLowerCase().indexOf(searchTerms.req) !== -1;

// пример данных

Data: [{req: "test", client: "client_01"},
{req: "now_test_01", client: "sample client"},
{req: "test", client: "client_01"},
{req: null, client: "sample client"},
{req: null, client: "client_01"},
{req: "now_test_018", client: "sample client"}]

Ответы [ 4 ]

0 голосов
/ 28 февраля 2019

Необходимо вернуть значение в зависимости от условия, проблема решена.Я нашел решение.Спасибо всем за ваши усилия.

return data.client.toLowerCase().indexOf(searchTerms.client) !== -1 
&& (searchTerms.req ? data.req && data.req.toLowerCase().indexOf(searchTerms.req) !== -1 : 
(data.req == null || data.req.toLowerCase().indexOf(searchTerms.req) !== -1));

// Это для тех, кто обесценил этот вопрос: если возможно, попытайтесь найти решение, когда кто-то просто ищет его.

0 голосов
/ 26 февраля 2019

Вы можете просто сделать следующее:

return !searchTerm.req || data.client.toLowerCase().indexOf(searchTerms.client) !== -1
    && data.req && data.req.toLowerCase().indexOf(searchTerms.req) !== -1;
0 голосов
/ 26 февраля 2019

Попробуйте это:

return data.client.toLowerCase().indexOf(searchTerms.client) !== -1
   && ((data.req == null && (searchTerms.req == null || searchTerms.req == "")) 
      || (data.req && data.req.toLowerCase().indexOf(searchTerms.req) !== -1));
0 голосов
/ 26 февраля 2019

Можно использовать значение по умолчанию, если data.req равно null.

(data.req || '').toLowerCase().indexOf(searchTerms.req) !== -1

или с ES6

(data.req || '').toLowerCase().includes(searchTerms.req)
...