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

Tri*_*rip 25 javascript jquery underscore.js angularjs momentjs

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

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

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

01-01
02-01
03-01
04-01
05-01
06-01
07-01
Run Code Online (Sandbox Code Playgroud)

那么我没有console.log那样的运行所以...:

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

它返回:

false
Run Code Online (Sandbox Code Playgroud)

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

voi*_*hos 56

你误解了最后一个论点_.some是什么.该文件表明,它是context,或范围,迭代器功能在其下运行,但似乎你想用它作为平等的测试值.

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

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


Nie*_*sol 17

你似乎误解了如何使用_.some().查阅文档,您将看到您的函数需要返回,true或者false最后一个参数将用作thistat函数.

你需要这样做:

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

  • 谢谢你,谢谢你,谢谢你.这绝对是正确的.我只能选择一个,所以我和失败者一起去了:( (7认同)