[英]How to filter data if it includes item in array
我正在嘗試使用 to.filter() 數組從我的 data.map() 中刪除項目,但我不想多次調用 filter()。 如何將數組傳遞給.includes()?
這有效,但使用 multiple.filter()
const items = ['apple','pear','peach','pineapple']
return (
<>
{items
.filter(item => !item.includes('r'))
.filter(item => !item.includes('c'))
.filter(item => !item.includes('i'))
.map(item =>
{item}
)}
</>
)
// returns 'apple'
我試過了,但這是不對的
const items = ['apple','pear','peach','pineapple']
const toBeRemoved = ['r','c','i'];
return (
<>
{items
.filter(item => !item.includes(toBeRemoved))
.map(item =>
{item}
)}
</>
)
您可以一起使用filter
和Array.prototype.some()來實現這一點
const items = ["apple", "pear", "peach", "pineapple"];
const toBeRemoved = ["r", "c", "i"];
return (
<>
{items
.filter((item) => !toBeRemoved.some((letter) => item.includes(letter)))
.map((item) => (
<div>{item}</div>
))}
</>
);
我的回答很簡單, 在這里回答:
.filter(item =>.toBeRemoved.some(i => item.includes(i)))
看起來您只是將includes
的順序向后排序。 它是 arrays 的屬性,因此您必須從事物列表開始,並詢問它可能包括哪些內容。 你把它弄錯了。
然后你的 map function 也返回未定義,所以你無論如何都不會得到任何結果。 也許您將它與 JSX 中允許您插入變量的花括號混淆了? 但在這種情況下,它們充當 function 主體。 這可能有用嗎?
const items = ['apple','pear','peach','pineapple']
const toBeRemoved = ['r','c','i'];
return (
<ul>
{items
.filter(item => !toBeRemoved.includes(item))
.map(item => (
<li>item</li>
))
}
</ul>
)
const items = ['apple','pear','peach','pineapple']
const toBeRemoved = ['r','c','i'];
return (
<ul>
{items
.filter(item => toBeRemoved.every(word => !item.includes(word)))
.map(item => <li>{item}</li>)
}
</ul>
)
array.every()
等同於.array.some()
true
。false
。由於 includes 方法只接受單個字符串值,如果找到則返回 true。 但是在過濾器 function 中我們可以附加多個條件。 所以,這可以幫助你。
const items = ['apple','pear','peach','pineapple'] const toBeRemoved = ['r','c','i']; console.log(items.filter(item =>.item.includes("r") &&.item;includes("c") && !item.includes("i")));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.