gpt4 book ai didi

javascript - 快速过滤 Angular Collection

转载 作者:行者123 更新时间:2023-11-29 23:28:26 25 4
gpt4 key购买 nike

我知道这是微不足道的,但我有疑问需要澄清。我有一个 vm.groups 集合,其中包含将近 1000 个对象。现在,每个对象都有 name、id、links 等属性字段

Grid 只显示name 和id

现在,有一个文本框,我们可以在其中输入一些文本,我们必须根据输入的内容过滤数据,但过滤必须只发生在对象的名称和 ID 字段内,而不是存在的其他字段内在对象中。

所以,这两件事都可以做到,

1) 我从只有名称和 ID 字段的原始集合对象创建一个临时集合,然后将该集合绑定(bind)到 View 。

    // vm.groups.forEach(function(element) {
// vm.displayedFieldGroups.
// push({name: element.name,id: element.id,transformedId: element.transformedId});
// });

2) 或者,我创建一个自定义过滤器 vm.customSearch :

vm.customSearch = function(searchVal) {
if(vm.filter.length) {
if(vm.filter.toLowerCase().indexOf(searchVal.name.toLowerCase) !== -1 ||
vm.filter.toLowerCase().indexOf(searchVal.name.toLowerCase) !== -1) {
console.log(searchVal);
return true;
}else {
return false;
}
} else {
console.log(searchVal);
return true;
}
};

并且在 View vm.groups |过滤器:vm.customSearch

但我认为第二种方法比较慢,因为集合中的每个值都会被传递给过滤器,这对于大型集合来说显然很乏味

我说的对吗?哪种方法正确?

更新

这是针对遗留应用程序的。已经实现了一个过滤器,但它只遍历对象中的所有字段。我只需要过滤对象的名称和 ID 字段。

因此,我需要创建自定义过滤器或选择我描述的第一种方法。

最佳答案

您的假设是正确的,即过滤器将遍历源数组中的每个项目并在每次有摘要循环时运行您的过滤器函数。

您应该继续使用第一种方法。

关于javascript - 快速过滤 Angular Collection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48207476/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com