使用Lodash _.chain()作为条件句

时间:2016-12-02 00:12:05

标签: javascript lodash

我想使用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
   }
}

2 个答案:

答案 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();