【发布时间】:2018-04-19 09:43:19
【问题描述】:
我有一个对象(数据)数组,我需要根据过滤条件(条件)过滤这个数组,其中每个条件可以有多个值。
var data = [
{ ID: 1, Name: "John", Color: "Blue", Location: "Up" },
{ ID: 2, Name: "Pauline", Color: "Green", Location: "Up" },
{ ID: 3, Name: "Ahmed", Color: "Orange", Location: "Left" },
{ ID: 4, Name: "Diego", Color: "Pink", Location: "Up" },
{ ID: 5, Name: "Maria", Color: "Black", Location: "Down" },
{ ID: 6, Name: "Gus", Color: "Green", Location: "Up" },
{ ID: 7, Name: "Brian", Color: "Pink", Location: "Left" },
{ ID: 8, Name: "Shelley", Color: "Green", Location: "Right" },
{ ID: 9, Name: "Leonardo", Color: "Blue", Location: "Right" },
{ ID: 10, Name: "Big Daddy", Color: "Green", Location: "Down" }
];
var criteria = [
{ Field: "Color", Values: ["Green"] },
{ Field: "Location", Values: ["Up", "Down"] }
];
我需要一个对象数组(过滤) 1.每个过滤条件都被视为“AND” 2. 一个过滤器字段中的多个过滤器值被视为“或”。所以输出应该是这样的:
var filtered = [
{ ID: 2, Name: "Pauline", Color: "Green", Location: "Up" },
{ ID: 6, Name: "Gus", Color: "Green", Location: "Up" },
{ ID: 10, Name: "Big Daddy", Color: "Green", Location: "Down" }
];
【问题讨论】:
-
这很好,但我们不是写代码的服务,所以学习How to Ask
-
欢迎来到 StackOverflow!到目前为止,您尝试过什么吗? StackOverflow 不是免费的代码编写服务,希望您能try to solve your own problem first。请更新您的问题以显示您已经尝试过的内容,并在minimal, complete, and verifiable example 中显示您面临的具体问题。如需更多信息,请参阅how to ask a good question,并拨打tour of the site
标签: javascript arrays filter