簡體   English   中英

字符串比較不適用於過濾方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM