js let arr = [{fileName: ‘短信-附件’},{fileName: ‘海报-附件’} ] let list = [‘短信’, ‘PPT’] //判断arr中是否包含list成员关键字,有几种方法
时间: 2024-10-16 17:17:24 浏览: 24
在JavaScript中,你可以使用几种方法来检查`arr`数组中是否有`list`数组中的文件名:
1. **使用`Array.prototype.some()`方法**:
```javascript
const contains = list.some(keyword => arr.some(obj => obj.fileName === keyword));
```
这会返回一个布尔值,表示`arr`中是否存在至少一个对象的`fileName`属性等于`list`中的某个关键词。
2. **使用`Array.prototype.every()`方法**:
```javascript
const containsAll = !list.some(keyword => !arr.some(obj => obj.fileName === keyword));
```
如果所有`list`中的关键词在`arr`中都找到,这个表达式的结果将是`true`。
3. **使用双重循环**:
```javascript
for (const keyword of list) {
if (!arr.some(obj => obj.fileName === keyword)) {
return false;
}
}
return true;
```
这种方法逐个检查每个关键词是否存在于`arr`中。
以上三种方法都会遍历一次`arr`,只是处理逻辑不同。第一种是最简洁的,而第二种会立即停止搜索如果找到一个匹配项。第三种是最直观的逐元素比较。
阅读全文