У вас есть проблема с приоритетом оператора , приоритет ===
выше, чем у ?:
, поэтому ваше выражение оценивается как
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"));