我需要通过数组中的键和值过滤数组的项,此键将始终包含布尔值。
我知道有一些方法可以做到这一点,但我想要一个更推荐的方法来做到这一点,因为当涉及太多记录时,这会影响过滤器性能。
[
{name: 'PERSON1',
info_add: {name: 'obs', active: true, faithful: false}.........},
{name: 'PERSON2',
info_add: {name: 'obs', active: true, faithful: true}.........},
{name: 'PERSON3',
info_add: {name: 'obs', active: false, faithful: true}.........},
]
如果值为false或true,我需要通过info_add
键或active
键放入faithful
内。
active = true => PERSON1对象,PERSON2对象
active = false => PERSON3对象
faithful = true => PERSON2对象,PERSON3对象
忠实=假=> PERSON1对象
由于我的数组非常大而且我有其他数组,我想知道如何最好地过滤来自active
和faithful
的对象。
目前我只使用下面的方法过滤字符串值,但我想创建另一种方法来提高过滤器性能。
public static filterArrayByString(mainArr, searchText)
{
if ( searchText === '' )
{
return mainArr;
}
searchText = searchText.toLowerCase();
return mainArr.filter(itemObj => {
console.log(itemObj);
return this.searchInObj(itemObj, searchText);
});
}
答案 0 :(得分:1)
file
您可以使用lodash使用过滤器功能在阵列上轻松应用过滤器。 第一行只是NodeJS使用lodash的方式,其余的是相同的。
在过滤函数的回调函数中,可以单独访问数组中的每个项,以确定条件是否应该在过滤的数组中。 return true表示将包含item,return false表示不包括item。