我有一个要过滤字符串的对象数组。因此,我想检查多个属性是否包含过滤器字符串(不区分大小写)。
这是数组:
[{
id: "01234",
name: "My Object 01234",
short_name: "MO01234"
}, ...]
因此,以下所有过滤器字符串应与该对象匹配:
0123
,obj
,mO01
等。这是我现在所拥有的:
const filterString = this.filterString.toLowerCase();
return myObjects.filter(
entry => {
return
entry.id.toLowerCase().indexOf(filterString) >= 0 ||
entry.name.toLowerCase().indexOf(filterString) >= 0 ||
entry.short_name.toLowerCase().indexOf(filterString) >= 0;
}
);
您能想到一种更快/更清洁的方法吗?
最佳答案
我不认为您可以更快地做到这一点,但更清洁的工作可能就是这样
const filterString = this.filterString.toLowerCase();
return myObjects.filter((entry) => {
return Object.values(entry).some((value) => {
return value.toLowerCase().includes(filterString)
})
});
关于javascript - 通过多种属性过滤对象的最快方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49997189/