26

我正在尝试查看是否有任何一天是“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

奇怪,嗯?你认为我做错了什么?

4

2 回答 2

58

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

您需要自己显式执行相等性测试。

_.some(a.days, function(day) {
    return day.date.format('DD-MM') === "01-01";
});
于 2013-01-21T22:41:04.217 回答
18

您似乎误解了如何使用_.some(). 查看文档,您会看到您的函数需要返回trueor false,并且最后一个参数将用作thistat 函数。

你需要这样做:

_.some(a.days,function(day){ return day.date.format("DD-MM") == "01-01";});
于 2013-01-21T22:41:21.253 回答