Passing additional parameters in higher-order functions

前端 未结 6 1408
刺人心
刺人心 2020-12-13 11:01

Consider this example:



        
6条回答
  •  有刺的猬
    2020-12-13 11:43

    you want to curry your function like so :-

    const samples = ["foo", "bar"];
    
    const exclude = function(s) {
      return item => item !== s;
    }
    
    const foos = samples.filter(exclude("foo"));
    console.log(foos)

    excludeFoos returns a function for filtering. Many functional languages auto curry functions for you so you can do partial application

    Note, it is easier to embrace something like Ramda for js which is built around these concepts and allows you to pipe collections / filters etc

提交回复
热议问题