为javascript filter
方法编写条件的最短方法是什么?
我知道这一点:array.filter(elem => elem > 2);
但我知道即使不指定elem
参数也可以写这个。
array.filter($1 > 2)
或者像这样。
答案 0 :(得分:1)
array.filter(c)
可能是过滤器的最小条件。
这里c
是一个命名函数,它将成为过滤器的回调函数。
var array = [1,2,3,4,5];
c = e => e > 2;
var x = array.filter(c);
console.log(x);
答案 1 :(得分:1)
尝试单行代码,最短的代码是:
array.filter(e => e > 2);
filter()方法
var newArray = arr.filter(callback[, thisArg])
需要回调函数。这是定义测试函数的最短方法。
注意:在swift
代码中,有一种方法可以在一个简单的表达式中执行此操作:
array.filter { $0 > 2 }
答案 2 :(得分:0)
最短的将是
array.filter(c); // c for "condition"
这需要您在其他地方定义c
方法
function c(elem){
return elem > 2;
}
// or var c = elem => elem > 2
答案 3 :(得分:0)
最简单的方法是将您的函数存储在变量中并将其传递给filter
const greaterThan2 = x =>
x > 2
arrays.filter(greaterThan2)
只有更短的版本还有更多好处:
如果你的函数有多个参数,你可以currying
。再次使用greater
的示例:
var numbers = [1, 2, 3, 4, 5]
const greater = b => a =>
a > b
console.log(
numbers.filter(greater(2))
)

为了使代码更加流畅,您可以将equal
设置为变量,如greaterThan2 = equal(2)
var numbers = [1, 2, 3, 4, 5]
const greater = b => a =>
a > b
const greaterThan2 =
greater(2)
console.log(
numbers.filter(greaterThan2)
)