Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sprawdzanie tablicy
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
thomson89
Witam!

Mam iluś rekordową tabelkę, z dwiema możliwymi wartościami: 1 lub 0.
[JAVASCRIPT] pobierz, plaintext
  1. kontrolka[1] = 1;
  2. kontrolka[2] = 0;
  3. kontrolka[3] = 1;
[JAVASCRIPT] pobierz, plaintext


Chciałbym teraz, "przelecieć" tą tabelkę i sprawdzić czy jest w niej jakieś 0; jak jest zwrócić false - jak nie ma: true. Próbowałem pętlą, dwiema pętlami ale nijak mi to wychodziło. Proszę o pomoc!
Wicepsik
[JAVASCRIPT] pobierz, plaintext
  1. <script type="text/javascript">
  2. var a=new Array();
  3. a[1] = 1;
  4. a[2] = 0;
  5. a[3] = 1;
  6. for(x in a){
  7. if(a[x]){
  8. document.write('Wartosc 1<br>');
  9. }else{
  10. document.write('Wartosc 0<br>');
  11. }
  12. }
  13. </script>
[JAVASCRIPT] pobierz, plaintext
krispak
@everth tu chyba chodzi o javascript nie php - przynajmniej tak dzial mowi..
[JAVASCRIPT] pobierz, plaintext
  1. function arraySearch(arr,val)
  2. {
  3. for (var i=0; i<arr.length; i++)
  4. if (arr[i] == val)
  5. return true;
  6. return false;
  7. }
[JAVASCRIPT] pobierz, plaintext
everth
@krispak thx winksmiley.jpg. Jak człowiek odrywa się na chwilę od skryptu i włazi na forum php.pl po 12 godzinach na nogach to później pojawiają się takie kwiatki. Poprzedni post usunąłem. Jak JS to też się da zrobić w jednej linijce (nie wiem jak z wydajnością):
[JAVASCRIPT] pobierz, plaintext
  1. res = (kontrolka.toString().match(0)==-1) ? 1:0;
[JAVASCRIPT] pobierz, plaintext
thek
A można jeszcze inaczej winksmiley.jpg Zauważcie, że wartości w tablicy przyjmują tylko wartości 0 i 1. Autor walnął pytanie, czy jakakolwiek z kontrolek jest równa 0, bez konieczności zwrócenia, która to z nich. Co więc się stanie jeśli zsumujemy wszystkie wartości kontrolek? 12 kontrolek na 1 = 12, 10 kontrolek na 1 = 10. Oho... Suma nie jest równa ilości - gdzieś jest przynajmniej jedno 0. Trzeba jedynie sprawdzić czy lecenie w pętli po każdej kontrolce jest szybsze niż sumowanie i porównanie z ilością kontrolek smile.gif
thomson89
Dzięki za pomoc!
kamil4u
Odnośnie tej 1 linijki to(i wydajność też jest dużo lepsza):
Kod
<script type="text/javascript">
var a=new Array();
a[1] = 1;
a[2] = 0;
a[3] = 1;

if(a.indexOf(0) == -1) alert("Nie ma zera"); else alert("Jest zero");
</script>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.