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()です。ドキュメントを参照すると、関数がまたはを返す必要があることがわかります。最後の引数は、tat関数の場合と同様に使用されます。truefalsethis

代わりにこれを行う必要があります:

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