我想使用lodash if(_.chain(123).isNumber()
.anotherCheck()
.anotherCheck()
.value() {
// do stuff
}
作为条件。这是什么东西应该用于lodash?
public interface MyInterface {//define Functional Interafce (SAM)
public int someMethod(int a);
}
public class Test {
public static void main(String[] args) {
MyInterface myInterface = (int a) -> a +5;//assign the expression to SAM
int output = myInterface.someMethod(20)); //returns 25
}
}
答案 0 :(得分:2)
chain
没有意义,因为isNumber
将返回boolean
。因此,anotherCheck
不会获得数字,而是获得isNumber
的结果。
将lodash
用于此类内容的一种方法是使用_.every
,例如:
function testNumber(num) {
return _.every([_.isNumber(num), num > 100, num % 2 === 0]);
}
function testNumberResult(num) {
var canUse = testNumber(num);
if (canUse) {
console.log(num, 'num is a number greater than 100 and even');
} else {
console.log(num, 'num did not pass tests');
}
}
答案 1 :(得分:2)
你可以做像
这样的事情_.chain(123)
.thru(function(num) {
return _.every([ // or _.some for any item
_.isNumber(num),
_.anotherCheck(num),
_.anotherCheck(num)
]);
})
.value();