一个数组对象,用户可以进新name搜索,也可以进行分组搜索,或者两个都可以,js
时间: 2024-01-05 15:02:58 浏览: 23
可以使用 JavaScript 中的 Array.filter() 方法来实现搜索功能。可以定义一个函数,接收一个数组参数,根据搜索条件返回匹配的结果数组。
例如,以下是根据 name 进行搜索的函数:
```javascript
function searchByName(arr, name) {
return arr.filter(function(item) {
return item.name.toLowerCase().indexOf(name.toLowerCase()) !== -1;
});
}
```
这个函数接收两个参数:要搜索的数组和搜索关键字 name。它将返回一个新数组,其中包含名称与搜索关键字匹配的项。
接下来,可以定义一个函数,根据分组进行搜索。以下是一个根据分组进行搜索的函数示例:
```javascript
function searchByGroup(arr, group) {
return arr.filter(function(item) {
return item.group === group;
});
}
```
这个函数接收两个参数:要搜索的数组和分组名称。它将返回一个新数组,其中包含与分组名称匹配的项。
最后,可以结合以上两个函数来实现同时根据 name 和分组进行搜索的功能。以下是一个实现示例:
```javascript
function search(arr, name, group) {
if (name && group) {
return searchByGroup(searchByName(arr, name), group);
} else if (name) {
return searchByName(arr, name);
} else if (group) {
return searchByGroup(arr, group);
} else {
return arr;
}
}
```
这个函数接收三个参数:要搜索的数组、搜索关键字 name 和分组名称。它将返回一个新数组,其中包含与搜索条件匹配的项。如果没有搜索条件,则将返回原始数组。