我需要幫助把基於多個條件的數組搜索放在一起。此外,所有條件都是有條件的,這意味着我可能需要也可能不需要對這些條件進行過濾。我有什麼:Javascript多狀態數組過濾器
對象的數組進行過濾:
var data = [{
"_id" : ObjectId("583f6e6d14c8042dd7c979e6"),
"transid" : 1,
"acct" : "acct1",
"transdate" : ISODate("2012-01-31T05:00:00.000Z"),
"category" : "category1",
"amount" : 103
},
{
"_id" : ObjectId("583f6e6d14c8042dd7c2132t6"),
"transid" : 2,
"acct" : "acct2",
"transdate" : ISODate("2012-01-31T05:00:00.000Z"),
"category" : "category2",
"amount" : 103
},
{
"_id" : ObjectId("583f6e6d14c8042dd7c2132t6"),
"transid" : 3,
"acct" : "acct2",
"transdate" : ISODate("2016-07-31T05:00:00.000Z"),
"category" : "category1",
"amount" : 103
},
{
"_id" : ObjectId("583f6e6d14c8042dd7c2132t6"),
"transid" : 4,
"acct" : "acct2",
"transdate" : ISODate("2012-01-31T05:00:00.000Z"),
"category" : "category2",
"amount" : 103
},
{
"_id" : ObjectId("583f6e6d14c8042dd7c2132t6"),
"transid" : 5,
"acct" : "acct2",
"transdate" : ISODate("2012-01-31T05:00:00.000Z"),
"category" : "category3",
"amount" : 103
},
{
"_id" : ObjectId("583f6e6d14c8042dd7c152g2"),
"transid" : 6,
"acct" : "acct3",
"transdate" : ISODate("2016-10-31T05:00:00.000Z"),
"category" : "category3",
"amount" : 103
}]
我過濾上述基於混合元件的另一陣列對象的陣列。元素表示以下搜索字段:
「searchString的」:在數據陣列中的所有字段搜索任何 匹配的文本序列
與關鍵值reprsenting帳戶類型和真正的或對象用於指示是否應當用於過濾
STARTDATE對
endd過濾transdate值假 吃過濾transdate
類別名稱上
具有搜索條件的數組類似過濾器類別(但如果某些字段是沒有必要的,他們將被設置爲未定義或只是一個空的字符串或數組):
var filtercondition = {
"p",
{acct1:true,acct2:false,acct3:true...}
"2016-06-01",
"2016-11-30",
"category3"
}
完成此操作的最佳方法是什麼?我設計的是對濾鏡數組中的每個元素進行單獨搜索,但這看起來不是最佳的,而且非常單調乏味。我打開我的設置進行重新設計...
什麼是數據的預期大小?它預計在哪裏運行?最近的電腦?移動?舊電腦?服務器強大? 「最好的方式」真的取決於多種因素。 – niry