Autor Zpráva
Tomashek
Profil
Dobrý den,
mám otázku zda jde v javascriptu zkontrolovat jestli jsou všechny položky v poli stejné.
Mohl bych udělat podmínku, protože to pole ma pokaždé 5 položek (jsou to všední dny), ale chtěl bych to ulehčit, protože to by vypadalo docela otřesně:
if(dayInp[0]==dayInp[1] && dayInp[1]==dayInp[2] && dayInp[2]==dayInp[3] &&dayInp[3]==dayInp[4] && dayInp[4]==dayInp[0] .... ) 
_es
Profil
Tomashek
To posledné porovnanie je nadbytočné.
Pre také malé pole asi nemá zmysel vytvárať nejaký špeciálny spôsob porovnania.
Ale niečo ma predsa len napadlo:
if(Math.min.apply(void 0, dayInp) == Math.max.apply(void 0, dayInp)){/**/};

No nejako veľmi kratšie to nie je a funguje to len na číselné polia.
ah01
Profil
Tomashek
Elegantně se to dá napsat v JS >= 1.6 (pouze Firefox a podobně).

if(dayInp.every(function(i){return dayInp[0] === i})){ ... }

Prostě se podíváš, jestli jsou všechny prvky rovné tomu prvnímu.

Problém je ta metoda every, která bude ve většině prohlížečích chybět. Můžeš si ji ale doplnit.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: