js写一个实现查询方法
时间: 2024-01-20 14:03:44 浏览: 22
假设我们有一个数组 `data`,每个元素都是一个对象,对象有 `name` 和 `age` 两个属性,我们希望实现一个查询方法 `find`,可以根据 `name` 或 `age` 进行查询,代码如下:
```javascript
const data = [
{ name: 'Alice', age: 25 },
{ name: 'Bob', age: 30 },
{ name: 'Charlie', age: 35 }
];
function find(query) {
return data.filter(item => {
for (let key in query) {
if (item[key] !== query[key]) {
return false;
}
}
return true;
});
}
// 查询名字为 Alice 的数据
console.log(find({ name: 'Alice' }));
// 查询年龄为 30 的数据
console.log(find({ age: 30 }));
// 查询名字为 Alice 并且年龄为 25 的数据
console.log(find({ name: 'Alice', age: 25 }));
```
这个方法接收一个查询参数 `query`,这个参数可以包含 `name` 或 `age` 属性,如果同时包含多个属性,则按照所有属性的条件进行筛选,返回符合条件的数据。使用 `Array.prototype.filter` 方法对数组进行筛选,遍历数组中的每个元素,检查它是否满足查询条件,如果满足则保留,否则过滤掉。