我应该在 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/