Ana*_*mar 5 javascript frontend filter
我有一组要过滤的对象:
[
{
"name": "Apple",
"age": 24,
"model": "Android",
"status": "Under development",
},
{
"name": "Roboto",
"age": 24,
"model": "Apple",
"status": "Running",
},
.
.
.
.
]
Run Code Online (Sandbox Code Playgroud)
我需要使用 JavaScript 的filter
方法使用多个参数过滤数组。我有一个部分解决方案,但无法获得预期的输出。
过滤器还应该处理单个属性的多个值。例如,age=54,23
或model="Android","Apple"
等。
我正在尝试模拟过滤器的工作方式,就像电子商务网站的工作方式一样,我们可以在其中比较产品的所有属性和客户选择的标签,以输出经过过滤的产品列表。
如果您像数据数组中的对象一样设置过滤条件的格式,但值是可能值的数组,那么您可以使用该filter
方法,如下所示:
let data = [
{
"name": "Apple",
"age": 24,
"model": "Android",
"status": "Under development",
}, {
"name": "Roboto",
"age": 24,
"model": "Apple",
"status": "Running",
}, {
"name": "Samsung",
"age": 26,
"model": "Blueberry",
"status": "Running",
},
];
let filter = {
"name": ["Roboto", "Ericsson"],
"age": [22, 24, 26],
};
let res = data.filter(obj =>
Object.entries(filter).every(([prop, find]) => find.includes(obj[prop])));
console.log(res);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
828 次 |
最近记录: |