z.....k
z.....k
#javascript #programowanie
hej - jak jest operator OR to on pod uwagę "weźmie" wszystkie wyrażenia prawda ?, a nie tylko dwa
bo mam:

if ((p.types[0] || p.types[1] || p.types[2]).test(obj.contents))

Przetestowałem:
type0 false
type1 false
type2 true
obj.contents: Słomki do napojów
75 szt./1 opak.

I kurde nie wchodzi - a musi ! :( Czy to moje środowisko zawodzi ?
  • Najlepsze
  • Wszystkie komentarze
Solidly
@zulik co ta metoda test robi? Dokumentacja mówi, że to sprawdzanie wyrażeń regularnych. Co chcesz osiągnąć?
tell_me_more
To podzieli na 2 wyrażenia or:

pierwsze: (p.types[0] || p.types[1])

drugie: wynik pierwszego || p.types[2]

Każdy
z.....k
z.....k
@Solidly: @tell_me_more:

zmodyfikowałem to w ten sposób i jest OK;
if (p.types[0].test(obj.contents) || p.types[1].test(obj.contents) || p.types[2].test(obj.contents))

piszę dla gazetki marketingowej (takiej z produktami w markecie) - skrypt sprawdzający ceny przeliczeniowe.
tell_me_more
@zulik: znaczy te types[0] to były nie wartości logiczne jak wcześniej pisałeś, tylko jakieś wyrażenia regularne? No to nie możesz tak rozdzielać (wyrażenie regularne 1 || wyrażenie regularne 2 || wyrażenie regularne 3).test(cośtam).

Operator || spodziewa się wartości logicznych jak dostanie coś innego to konwertuje w durny sposób. To tak, jakbyś zrobił jabłko + deszcz + 3 = ?

Możesz za to napisać jedno wyrażenie regularne które sprawdza czy wartość
z.....k
z.....k
@tell_me_more: dziękuje Ci bardzo, za zainteresowanie - strasznie brak mi doświadczenia.