[英]String comparison not working with filter method
我正在嘗試替換和比較 rest api JSON 數組返回的字符串,但不知何故它現在正在工作。 任何人都可以幫忙嗎?
下面的方法返回結果而不過濾:
review1data.filter(element => element.PM?element.PM.toString().replace(/\s\[.*?\]/,''):element.PM === "Name, Test")
您有運算符優先級問題, ===
的優先級高於?:
因此您的表達式被評估為
element.PM?element.PM.toString().replace(/\s\[.*?\]/,''):(element.PM === "Name, Test")
對於非空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"));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.