list
.filter((val) => {
if (
val.name.toLocaleLowerCase().includes(input))
) {
return val
}
})
.map((val, idx) => (
<Li
key={idx}
/>
))
使用這個結構,我想在回傳空時做一些事情。
例如:當搜索“abc”并且串列中沒有“abc”時,會出現一條訊息說找不到“abc”。
uj5u.com熱心網友回復:
要改變的幾件事:
1.您的過濾器運算式只是偶然起作用
list
.filter((val) => {
if (
val.name.toLocaleLowerCase().includes(input))
) {
return val
}
})
可以只是
list
.filter(val => val.name.toLocaleLowerCase().includes(input)
請記住,里面的函式filter只回傳一個trueor false。偶然地,您回傳實際串列元素true的運算式被解釋為,并且當您的運算式不匹配時,您不回傳任何內容,這與回傳的效果相同false。如上表達它可以更清楚地了解你在做什么(并且速度非常快)。
2. 要獲取錯誤訊息,請保存過濾器的輸出,以便測驗其長度。
const matches = list.filter(val => val.name.toLocaleLowerCase().includes(input)
const output = (matches.length>0) ?
matches.map((val, idx) => (
<Li
key={idx}
/>
)) : (
<div>Not found</div>
)
uj5u.com熱心網友回復:
您可以使用以下 JavaScript 代碼使用“過濾器”和“映射”判斷串列是否為空:
list
.filter((value) => (value!==undefined) && (value!==null) && value.name.toLocaleLowerCase().includes(input)))
.map((value, id) => (
<Li
key={id}
/>
))
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/330861.html
標籤:javascript 反应 反应原生
上一篇:LINQ中的C#子查詢選擇
