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