web-dev-qa-db-fra.com

Utilisation de _.some | _.tout correctement pour un tiret bas ou un trait de soulignement

J'essaie de voir si l'un des jours est '01 -01 '(le début de l'année)

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

Produit ce tableau de dates dans ma console:

01-01
02-01
03-01
04-01
05-01
06-01
07-01

Alors je cours sans le console.log ainsi .. :

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

Et ça revient:

false

Étrange, hein? Que pensez-vous que je fais mal?

24
Trip

Vous avez mal compris quel est le dernier argument à _.some est. documentation montre que c'est le context, ou la portée, sous lequel la fonction itérateur s'exécute, mais il semble que vous essayez de l'utiliser comme valeur pour les tests d'égalité.

Vous devrez exécuter explicitement le test d'égalité vous-même.

_.some(a.days, function(day) {
    return day.date.format('DD-MM') === "01-01";
});
55
voithos

Vous semblez mal comprendre comment utiliser _.some(). Consultez la documentation et vous verrez que votre fonction doit retourner true ou false, et le dernier argument sera utilisé comme this dans fonction tat.

Vous devez le faire à la place:

_.some(a.days,function(day){ return day.date.format("DD-MM") == "01-01";});
17
Niet the Dark Absol