[英]How to include the entire length of arrays?
下面,我創建了此過濾器方法,僅顯示在fullDetails數組中找到的內容。
如果這個問題不清楚,或者使用的術語錯誤,我深表歉意。
現在,如果我輸入每個單獨的元素,它就可以工作(例如,fullDetails [0])。 但是數組有4個元素。 我如何編寫它使其包括數組的整個長度? (即[0] [1] [2] [3])?
let modItemList = this.props.items.filter(
(item) => {
return item.fullDetails[0].toLowerCase().indexOf(this.state.searchItems.toLowerCase()) !== -1;
}
);
如果您的過濾器應該保留其fullDetails
數組包含this.state.searchItems
(不區分大小寫)的項目,則您正在尋找some
數組方法:
let lc = this.state.searchItems.toLowerCase(); // Do this once
let modItemList = this.props.items.filter(
(item) => item.fullDetails.some(e => e.toLowerCase().indexOf(lc) !== -1)
);
some
呼吁其回調數組中的每個條目,停止和返回true
,如果回調返回truthy值(如果這不可能發生, some
回報false
)。
除了indexOf
,您還可以使用includes
(ES2015,如let
和arrow函數):
let lc = this.state.searchItems.toLowerCase(); // Do this once
let modItemList = this.props.items.filter(
(item) => item.fullDetails.some(e => e.toLowerCase().includes(lc))
);
您可以使用every
檢查每個元素是否匹配。
let modItemList = this.props.items.filter(
(item) => {
return item.fullDetails.every(fullDetail => fullDetail.toLowerCase().indexOf(this.state.searchItems.toLowerCase()) !== -1);
}
);
但是, searchItems
的復數表示這也可能是一個數組-因此也許您需要在此處翻轉/增強邏輯。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.