使用传入值对数组中每一个对象进行模糊查找,将所有包含传入值的对象push进数组并返回,如果没有符合条件的就returnfalse
时间: 2024-02-21 08:00:51 浏览: 45
好,我理解了你的问题。下面是一个JavaScript函数,可以实现你需要的功能:
```javascript
function fuzzySearch(arr, value) {
const result = [];
for (let i = 0; i < arr.length; i++) {
const obj = arr[i];
for (const key in obj) {
if (obj.hasOwnProperty(key) && typeof obj[key] === 'string' && obj[key].includes(value)) {
result.push(obj);
break;
}
}
}
return result.length > 0 ? result : false;
}
```
这个函数接受两个参数:一个数组和一个字符串。它会遍历数组中的每一个对象,并检查每一个键对应的值是否包含传入的字符串。如果找到了符合条件的对象,就将它 push 到结果数组中。最后,如果结果数组不为空,就返回它;否则返回 false。
例如,如果我们有以下数组:
```javascript
const arr = [
{ name: 'Alice', age: 30 },
{ name: 'Bob', age: 25 },
{ name: 'Charlie', age: 40 },
{ name: 'David', age: 35 }
];
```
然后我们调用函数:
```javascript
fuzzySearch(arr, 'li');
```
它会返回:
```javascript
[
{ name: 'Alice', age: 30 },
{ name: 'Charlie', age: 40 }
]
```
因为这两个对象的 name 属性都包含字符串 'li'。如果我们传入一个不存在的字符串,例如:
```javascript
fuzzySearch(arr, 'xyz');
```
函数会返回 false,因为没有任何对象的任何属性包含 'xyz'。
阅读全文