js写一个实现查询方法
时间: 2024-01-20 14:03:44 浏览: 16
假设你有一个数组,数组中包含一些对象,每个对象都有一个 name 属性和一个 age 属性,你想要根据名字查询符合条件的对象。你可以按照以下方式实现一个查询方法:
```javascript
const data = [
{ name: 'Alice', age: 20 },
{ name: 'Bob', age: 25 },
{ name: 'Charlie', age: 30 }
];
function searchByName(name) {
return data.filter(item => item.name === name);
}
// 调用
const result = searchByName('Bob');
console.log(result); // 输出 [{ name: 'Bob', age: 25 }]
```
以上代码中,`searchByName` 方法接受一个参数 `name`,并使用 `Array.prototype.filter` 方法过滤出符合条件的对象,最后返回一个新数组。
相关问题
js写一个实现模糊查询方法
以下是一个简单的实现模糊查询的方法:
```javascript
function fuzzySearch(keyword, list) {
const filteredList = list.filter(item => {
return item.includes(keyword);
});
return filteredList;
}
```
这里的 `keyword` 是用户输入的关键词,`list` 是需要进行模糊查询的列表。该方法会返回一个包含匹配的列表项的新数组。
这个方法的实现很简单,它使用 Array.prototype.filter() 方法来遍历列表并返回一个新数组,新数组中只包含匹配关键词的列表项。在这个例子中,我们使用了 String.prototype.includes() 方法来检查列表项是否包含关键词。如果你需要更精确的匹配,你可能需要使用正则表达式或其他方法来实现。
js写一个实现模糊查询方法数组里面是对象
假设要实现的模糊查询方法是 `fuzzySearch(query, arr)`,其中 `query` 是查询字符串,`arr` 是包含对象的数组,对象具有属性 `name`,表示需要被查询的名称。
以下是一个可能的实现:
```javascript
function fuzzySearch(query, arr) {
return arr.filter(function(obj) {
// 将查询字符串和名称都转化为小写字母,以便进行不区分大小写的匹配
var name = obj.name.toLowerCase();
query = query.toLowerCase();
// 判断名称是否包含查询字符串
return name.indexOf(query) !== -1;
});
}
```
例如,如果有以下数据:
```javascript
var data = [
{ name: 'apple' },
{ name: 'banana' },
{ name: 'orange' },
{ name: 'pear' }
];
```
调用 `fuzzySearch('a', data)` 将返回:
```javascript
[
{ name: 'apple' },
{ name: 'banana' },
{ name: 'orange' }
]
```
调用 `fuzzySearch('e', data)` 将返回:
```javascript
[
{ name: 'apple' },
{ name: 'pear' }
]
```