Сравнение строк не работает с методом фильтра - PullRequest
0 голосов
/ 21 сентября 2019

Я пытаюсь заменить и сравнить строку, возвращаемую массивом rest api JSON, но теперь она работает.Кто-нибудь может помочь?

Ниже метод, возвращающий результаты без фильтрации:

review1data.filter(element => element.PM?element.PM.toString().replace(/\s\[.*?\]/,''):element.PM === "Name, Test")

1 Ответ

1 голос
/ 21 сентября 2019

У вас есть проблема с приоритетом оператора , приоритет === выше, чем у ?:, поэтому ваше выражение оценивается как

 element.PM?element.PM.toString().replace(/\s\[.*?\]/,''):(element.PM === "Name, Test")

, что для-impty element.PM всегда верно.Вместо этого используйте скобки для явного определения вашего приоритета:

(element.PM?element.PM.toString().replace(/\s\[.*?\]/,''):element.PM) === "Test, Name"

const review1data = [ { Title:"Employee", PM: "Snehal, R [IT/PFS]" }, 
                      { Title:"Employee", PM: "John, T [IT/YTS]" } ];

console.log(review1data.filter(element => 
   (element.PM ? element.PM.toString().replace(/\s\[.*?\]/,'') : element.PM) === "Snehal, R"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...