使用_.some | _.any适合lo-dash或下划线

时间:2013-01-21 22:37:07

标签: javascript jquery angularjs underscore.js momentjs

我正试图看看是否有任何日子是'01 -01'(年初)

_.some(a.days, function(day){ console.log(day.date.format('DD-MM')) }, "01-01")

在我的控制台中生成此日期数组:

01-01
02-01
03-01
04-01
05-01
06-01
07-01

那么我在没有console.log的情况下就这样运行..:

_.some(a.days, function(day){ day.date.format('DD-MM') }, "01-01")

它返回:

false

奇怪,是吗?你觉得我做错了什么?

2 个答案:

答案 0 :(得分:54)

你误解了_.some的最后一个论点是什么。 documentation表明它是context或范围,迭代器函数在其下运行,但似乎你正试图将它用作相等测试的值。

您需要自己明确执行相等测试。

_.some(a.days, function(day) {
    return day.date.format('DD-MM') === "01-01";
});

答案 1 :(得分:17)

您似乎误解了如何使用_.some()。咨询documentation,您会发现您的函数需要返回truefalse,最后一个参数将用作tat函数中的this

你需要这样做:

_.some(a.days,function(day){ return day.date.format("DD-MM") == "01-01";});