【发布时间】:2016-12-14 10:25:41
【问题描述】:
考虑以下示例:
var products = {
"Products": [{
"Title": "A",
"Categories": [{
"Name": "Type",
"Properties": ["Type 1", "Type 2", "Type 3"]
}, {
"Name": "Market",
"Properties": ["Market 1", "Market 2", "Market 3", "Market 4"]
}, {
"Name": "Technology",
"Properties": ["Tech 1", "Tech 2"]
}]
}, {
"Title": "B",
"Categories": [{
"Name": "Type",
"Properties": ["Type 1", "Type 3"]
}, {
"Name": "Market",
"Properties": "Market 1"
}, {
"Name": "Technology",
"Properties": ["Tech 1", "Tech 3"]
}]
}, {
"Title": "C",
"Categories": [{
"Name": "Type",
"Properties": ["Type 1", "Type 2", "Type 3"]
}, {
"Name": "Market",
"Properties": ["Market 2", "Market 3"]
}, {
"Name": "Technology",
"Properties": ["Tech 2", "Tech 3"]
}]
}]
}
我正在尝试按产品属性过滤产品,因此请考虑使用数组来跟踪我选择的过滤器:
var filters = ['Type 3', 'Tech 1'];
使用这些过滤器,我想退回产品 A 和产品 B。
我目前有这个:
var flattenedArray = _.chain(products).map('Categories').flatten().value();
var result= _.some(flattenedArray , ['Properties', 'Tech 1']);
但我不知道如何组合属性以进行组合搜索。
【问题讨论】:
-
您的过滤器总是与
Properties相关? -
是的,总是这样。
标签: javascript json lodash