一个拒绝函数,它传递一个数组数组的子数组,应该拒绝该子数组中的任何内容。如果有办法只写一个拒绝函数并消除greaterthanvalues函数及其结果。
如何进一步缩短此代码。任何帮助表示赞赏。
var numbers = [0,1,2,3,4,5,6,7,8,9];
var greaterthanvalues = (numbers, value) => numbers.filter((number) => number > value )
var t = greaterthanvalues(numbers, 5)
var reject = (numbers) =>
numbers.filter((number) => number < t[0])
reject(numbers, greaterthanvalues)
答案 0 :(得分:0)
取决于您为何使用此代码执行操作。如果你只是试图打高尔夫球,那么缩短它的一个方法就是删除lambdas的定义并将它们称为内联。像下面的东西
var numbers = [0,1,2,3,4,5,6,7,8,9];
var greaterthanvalues = ((numbers, value) => numbers.filter((number) => number > value ))(numbers, 5)
var reject = ((numbers) => numbers.filter((number) => number < greaterthanvalues[0]))(numbers, greaterthanvalues)
更新了答案以反映您的评论/修改
var numbers = [0,1,2,3,4,5,6,7,8,9];
var reject = (numbers, lambdaRet) => numbers.filter((number) => number < lambdaRet[0])
reject(numbers, ((numbers, value) => numbers.filter((number) => number > value ))(numbers, 5))
说明:如果不重写你正在做的事情的全部想法,这里有一种方法。 Reject是一个以两个数组作为参数的函数。调用此函数时,我将第一个数组作为数字传入,第二个数组作为我定义的lambda函数的结果传入并调用内联。这应该会给你一个很好的基线