Javascript 使用u.some | uu.any正确表示短划线或下划线
我想看看是否有任何一天是“01-01”(年初) 在我的控制台中生成此日期数组:Javascript 使用u.some | uu.any正确表示短划线或下划线,javascript,jquery,angularjs,underscore.js,momentjs,Javascript,Jquery,Angularjs,Underscore.js,Momentjs,我想看看是否有任何一天是“01-01”(年初) 在我的控制台中生成此日期数组: 01-01 02-01 03-01 04-01 05-01 06-01 07-01 因此,我运行时没有控制台.log,如下所示: _.some(a.days, function(day){ day.date.format('DD-MM') }, "01-01") 它返回: false 奇怪,嗯?你认为我做错了什么?你误解了的最后一个参数是什么。显示迭代器函数运行的是上下文或作用域,但您似乎试图将其用作相等性测试
01-01
02-01
03-01
04-01
05-01
06-01
07-01
因此,我运行时没有控制台.log
,如下所示:
_.some(a.days, function(day){ day.date.format('DD-MM') }, "01-01")
它返回:
false
奇怪,嗯?你认为我做错了什么?你误解了
的最后一个参数是什么。显示迭代器函数运行的是上下文或作用域,但您似乎试图将其用作相等性测试的值
您需要自己显式执行相等性测试
_.some(a.days, function(day) {
return day.date.format('DD-MM') === "01-01";
});
您似乎误解了如何使用。.some()
。查阅,您将看到函数需要返回true
或false
,最后一个参数将用作tat函数中的this
您需要这样做:
_.some(a.days,function(day){ return day.date.format("DD-MM") == "01-01";});
谢谢,谢谢。这是绝对正确的。不过我只能选择一个,所以我选择了失败者:(顺便说一句,如果有人无意中来到这里寻找“some”和“any”之间的区别,他们是别名,并且做了完全相同的事情。
_.some(a.days,function(day){ return day.date.format("DD-MM") == "01-01";});