いずれかの日が'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
奇妙な、え?私は間違って何をしていると思いますか?
_.some
の最後の引数が何であるかを誤解しています。 documentation は、それがcontext
またはスコープであることを示します。その下でイテレータ関数が実行されますが、等価テストの値として使用しようとしているようです。
自分で等値性テストを明示的に実行する必要があります。
_.some(a.days, function(day) {
return day.date.format('DD-MM') === "01-01";
});
_.some()
の使用方法を誤解しているようです。 ドキュメント を参照すると、関数がtrue
またはfalse
を返す必要があり、最後の引数がthis
として使用されることがわかります。 tat関数。
代わりにこれを行う必要があります:
_.some(a.days,function(day){ return day.date.format("DD-MM") == "01-01";});