Javascript 一次过滤对象中的多个字段Vue.js
我试图显示一个用户列表,如果它的任何字段包含输入字段的文本。如果我在filteredList()函数中删除for循环,并选择手动选择它所选的对象,我就可以实现这一点 (例如:Javascript 一次过滤对象中的多个字段Vue.js,javascript,vue.js,Javascript,Vue.js,我试图显示一个用户列表,如果它的任何字段包含输入字段的文本。如果我在filteredList()函数中删除for循环,并选择手动选择它所选的对象,我就可以实现这一点 (例如:返回user.username.toLowerCase().includes(searchinput.toLowerCase());) 但我不想一遍又一遍地写这些,以防以后字段被删除或添加 现在我越来越紧张 “vue.js:634[vue warn]:呈现时出错:“TypeError:无法读取未定义的属性“0”,但我不确定是
返回user.username.toLowerCase().includes(searchinput.toLowerCase());)
但我不想一遍又一遍地写这些,以防以后字段被删除或添加
现在我越来越紧张
“vue.js:634[vue warn]:呈现时出错:“TypeError:无法读取未定义的属性“0”,但我不确定是什么导致了此错误。有人能解释一下为什么会发生这种情况吗?有没有比在自己的数组中检查字段更好的方法使其更具动态性
我把代码放进一个代码笔-你想要的
用户[shownFields[I]]
不是用户。shownFields[I]
是因为用户
没有名为shownFields
的属性
您还需要更改什么i
return this.items.filter(function(theuser) {
for(var i = 0; i < shownFields.length; i++) { // change here
if(theuser[shownFields[i]].toLowerCase().includes(searchinput.toLowerCase())) { // change here
return theuser[shownFields[i]].toLowerCase().includes(searchinput.toLowerCase()); // change here
}
}
});