angular - array.map 返回未定义
问题描述
我希望其 id、name、email 或所有三个与用户给出的查询匹配的用户。一切似乎都很好,但地图功能..有人可以向我解释我在这里做错了什么......
import {UserModel} from '../user.model';
export class UserFilterService {
users: UserModel[] = [];
constructor() {
}
searchUser(users: UserModel[], id, name, email): UserModel[] {
this.users = users;
let reqUsers;
if (id !== '' || name !== '' || email !== '') {
reqUsers = this.searchByAll(id, name, email);
return reqUsers;
}
}
searchByAll = (id, name, email) => {
const reqUser: UserModel[] = this.users.map((user) => {
if (user.getId() === id && user.getName() === name && user.getEmail() === email) {
return user;
}
else if (user.getId() !== id && user.getName() === name && user.getEmail() === email ) {
return user;
}
else if (user.getId() === id && user.getName() === name && user.getEmail() !== email) {
return user;
}
else if (user.getId() === id && user.getName() !== name && user.getEmail() === email) {
return user;
}
else if (user.getId() === id && user. getName() !== name && user.getEmail() !== email) {
return user;
}
else if (user.getId() !== id && user.getName === name && user.getEmail() !== email) {
return user;
}
else if (user.getId() !== id && user.getName() !== name && user.getEmail() === email) {
return user;
}
});
console.log(reqUser);
return reqUser;
}
}
解决方案
我将 searchByAll 方法更新为
searchByAll = (id, name, email) => {
const reqUser: UserModel[] = this.users.filter((user) => user.getId() === id || user.getName() === name || user.getEmail() === email);
console.log(reqUser);
return reqUser;
}
它奏效了
推荐阅读
- microsoft-graph-sdks - GraphServiceClient : No data can be read from the transmission connection: 现有连接已被远程主机关闭
- java - java电报AbilityBot库错误处理
- jsonschema - csv 文件的蛇形样本验证模式
- google-apps-script - 如何使用日历应用程序获取工作地点?
- java - 在 Flux 中使用 Mono 结果
- python - 如何用空格分割字符串的字符,然后用特殊字符和数字分割列表的结果元素,然后再次加入它们?
- laravel - Laravel:如何检查 web.php 中的嵌套类别 url?
- python - 在excel中如何拆分数字和字符值以及如何使用python附加到不同的列中
- firebase - Flutter Firebase 创建流的动态列表
- visual-c++ - 在 Visual Studio 2019 中使用 Clang 编译 C++ 项目时出现 lld-link 错误