javascript - Array.filter 与 $filter ('filter' )

标签 javascript arrays angularjs filter angularjs-filter

我应该在 Angular 应用程序中使用哪个,为什么?

array.filter(o => o.name === myName);

$filter('filter')(array, {name: myName}, true);

最佳答案

主要区别在于 $filter('filter') 提供的快捷方式或语法糖。例如,以下语法可用于获取在任何项目的 string 属性中包含 keyword 字符串的项目:

$filter('filter')(array, 'keyword')

使用标准 ES5 Array.prototype.filter 就没那么简单了。

虽然两种方法的总体思路相同 - 将给定数组的子集作为数组返回。

更新:

Under the hood angular 使用 Array.prototype.filter:

function filterFilter() {
    // predicateFn is created here...

    return Array.prototype.filter.call(array, predicateFn);
}

因此,如果您不使用快捷方式 - Angular 只是将调用委托(delegate)给标准 filter

回答您的问题:使用可以让您编写更少代码的那个。在您的特定情况下,它将是 array.filter(o => o.name === myName);

关于javascript - Array.filter 与 $filter ('filter' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38007813/

相关文章:

javascript - firebug (1.10.1) 表明 javascript 不限于 firefox (13.0) 中的单个线程

java - 为什么我的代码填充了所有值

java - 迭代数组并打印不同的字符串输出

javascript - 我可以让 selenium 暂停输入并在触发器上恢复吗?

javascript - 如何创建一个列表,使每个选项都是 AngularJS 中的一个列表?

javascript - Google map 进行调整以包含用户和地址

javascript - 有没有办法通过 Online API 通过 URL 实现搜索功能

python - 使用 3D 张量的最后一个维度中的索引索引 4D 张量的最后一个维度

javascript - 如何在angular js中以一种方式绑定(bind)克隆表行

javascript - Protractor 超时 - "Failed: Timed out waiting for asynchronous Angular tasks to finish after 11 seconds."