如何为过滤器使用带有多个参数的链和过滤器?

时间:2015-09-11 19:02:41

标签: javascript underscore.js

我正在尝试编写一个函数来缩小基于日期部分的列表。 我正在使用的库是underscore.js和moment.js。

这是我到目前为止所拥有的。

if(Email.Text.Contains("@gmail.com"))
     //register user

问题是datePartType作为第一个参数被放入。在javascript中并不奇怪,但我认为链函数会使其隐含。

如何使用两个功能让它工作?或者我是否必须将它们组合在一起并使用顶部的变量?

1 个答案:

答案 0 :(得分:0)

//this is the function I call.
function filterListByCurrentDatePart(inputData, datePartType) {
  var now = moment(); //Cache it for performance reasons
  return _.chain(inputData)
    .filter(function(item) {
      return now.isSame(item.adate, datePartType)
    })
    .value();
};

var data = [{
  adate: "2015-09-10T00:00:00-04:00",
  numUnits: 0
}, {
  adate: "2015-09-19T00:00:00-04:00",
  numUnits: 2
}];

console.log(filterListByCurrentDatePart(data, 'd'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.6/moment.min.js"></script>