按对象属性进行JavaScript搜索

按对象属性进行JavaScript搜索,javascript,Javascript,我使用以下方法通过username属性从用户列表中进行搜索。我的困惑是第6行console.log(“用户过滤”+JSON.stringify(用户))显示以控制台与我在搜索栏中键入的用户名匹配的对象。它可以工作,但只适用于第一个元素。例如,我有两个用户vicky,valentine,当我通过v搜索时,我只得到: Users filtered {"age":"21","username":"vicky","

我使用以下方法通过username属性从用户列表中进行搜索。我的困惑是第6行
console.log(“用户过滤”+JSON.stringify(用户))显示以控制台与我在搜索栏中键入的用户名匹配的对象。它可以工作,但只适用于第一个元素。例如,我有两个用户
vicky,valentine
,当我通过
v
搜索时,我只得到:

Users filtered {"age":"21","username":"vicky","lastUpdated":{"seconds":1601845200,"nanoseconds":0}}
我得到了指向第行的错误:
返回userObject.username.toLowerCase().includes(searchString)


问题在于:

userObject = JSON.stringify(user);
JSON.stringify()
顾名思义,返回一个没有
username
属性的字符串

尝试将过滤器简化为:

let filteredUsers = usersArray.filter(user => {
    return user.username.toLowerCase().includes(searchString);
});
userObject = JSON.stringify(user);
let filteredUsers = usersArray.filter(user => {
    return user.username.toLowerCase().includes(searchString);
});