我们可以使用 JavaScript 中的 filter() 方法来过滤 JSON 数据。为了实现按多个属性过滤,我们可以使用对象的多个键来匹配,例如:
const jsonData = [ { name: 'John', age: 32, city: 'New York' }, { name: 'Peter', age: 26, city: 'San Francisco' }, { name: 'Mary', age: 28, city: 'Los Angeles' }, { name: 'Jane', age: 30, city: 'New York' }, ];
const filters = { age: 30, city: 'New York', };
const filteredData = jsonData.filter(item => { for (let key in filters) { if (item[key] === undefined || item[key] !== filters[key]) return false; } return true; });
console.log(filteredData); // [{ name: 'Jane', age: 30, city: 'New York' }]
上面的示例中,我们定义了一个 jsonData 数组来存储 JSON 数据,filters 对象中包含要过滤的属性和值。我们使用 filter() 方法遍历 jsonData 数组,然后使用 for...in 循环遍历 filters 对象中的每个键。对于每个键,我们检查它是否存在于 jsonData 数组中并且是否与 filters 对象中的值匹配。如果匹配,则返回 true,否则返回 false。最后,我们将过滤后的 JSON 数据存储在 filteredData 数组中并输出。
这就是按多个属性过滤 JSON 数据的解决方法。