我正试图看看是否有任何日子是'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
奇怪,是吗?你觉得我做错了什么?
答案 0 :(得分:54)
你误解了_.some
的最后一个论点是什么。 documentation表明它是context
或范围,迭代器函数在其下运行,但似乎你正试图将它用作相等测试的值。
您需要自己明确执行相等测试。
_.some(a.days, function(day) {
return day.date.format('DD-MM') === "01-01";
});
答案 1 :(得分:17)
您似乎误解了如何使用_.some()
。咨询documentation,您会发现您的函数需要返回true
或false
,最后一个参数将用作tat函数中的this
。
你需要这样做:
_.some(a.days,function(day){ return day.date.format("DD-MM") == "01-01";});