Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript]Tablice sprawdzanie czy wartość jest w przedziale.
cykcykacz
post
Post #1





Grupa: Zarejestrowani
Postów: 550
Pomógł: 9
Dołączył: 29.05.2009
Skąd: Ostrów Wielkopolski

Ostrzeżenie: (0%)
-----


Witam,
mam 3 tablice przy czym pierwsza to:
0,4,6,8,13

Dwie pozostałe to tablcie gdzie muszę sprawdzić czy dana wartość jest w przedziale liczb z dwóch tablic.
Poniżej tablice:
1,3,5,9,11,12
1,4,8,9,11,13

I sobie sprawdzam czy np: 4 jest w przedziale od 1 do 1 lub od 3 do 4 lub od 5 do 8 itd.

Uwzględniając większze lub równe czyli np: z pierwszej tablicy 4 znajduje się w przedziale od 3(z drugiej tablicy) do 4(z trzeciej tablicy). I to zostaje zapisane do nowej tablicy.
Mam skryp który to robi ale nie jest automatyczny nie umiem tego zrobić w pętli for.
I tak np:
[JAVASCRIPT] pobierz, plaintext
  1. <script type="text/javascript">
  2. function obliczenie() {
  3. var tablica1 = new Array();
  4. tablica1[0] = "0";
  5. tablica1[1] = "4";
  6. tablica1[2] = "6";
  7. tablica1[3] = "8";
  8. tablica1[4] = "13";
  9.  
  10.  
  11. var tablica2 = new Array();
  12. tablica2[0] = "1";
  13. tablica2[1] = "3";
  14. tablica2[2] = "5";
  15. tablica2[3] = "9";
  16. tablica2[4] = "11";
  17. tablica2[5] = "12";
  18.  
  19.  
  20. var tablica3 = new Array();
  21. tablica2[0] = "1";
  22. tablica2[1] = "4";
  23. tablica2[2] = "8";
  24. tablica2[3] = "9";
  25. tablica2[4] = "11";
  26. tablica2[5] = "13";
  27.  
  28.  
  29. var tablica = new Array();
  30. for (var f=0;f<tablica2.length;f++)
  31. {
  32. if(tablica1[1]>=tablica2[f] && tablica1[1]<=tablica2[f])
  33. {tablica[f]=f;}
  34. }
  35. xxx = tablica.filter(function(){return true});
  36. alert(xxx);
  37. }
  38. </script>
[JAVASCRIPT] pobierz, plaintext


Czyli na samym końcu skryptu sprawdzam czy czwórka znajduje się w którymś z przdziałów. I faktycznie znajduje się informacja zostaje zapisana do tablicy.

Nie wiem jak ten proces zautomatyzować aby sprawdzało odrazu dla wszystkich wartosci z tablicy pierwszej i zapisywało do tablicy te informacje.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
cykcykacz
post
Post #2





Grupa: Zarejestrowani
Postów: 550
Pomógł: 9
Dołączył: 29.05.2009
Skąd: Ostrów Wielkopolski

Ostrzeżenie: (0%)
-----


Tylko ja nie wiem jak z tego skorzystać.

Dobra dzięki serioo.

Pomogłeś mi bardzo.

Hej,
mam tu jeszcze jeden problem.
[JAVASCRIPT] pobierz, plaintext
  1. <script type="text/javascript">
  2. // skryp liczący słowa, słowa pogrubione, słowa wersaliki(kapitaliki duże litery)
  3. function button() {
  4. var string = "<em>asd <strong>tamiza</strong> test</em> <strong>asd <em>xxx</em></strong> <strong>Szymon <em>Dawidowicz</em> robi <em>ogłoszenie</em></strong> <strong>w</strong> Gazecie <strong>Ostrowskiej.</strong> <strong>zxc <em>rty</em></strong>";
  5.  
  6. var test = string.split(" ");
  7.  
  8. var countarray = (test.length);
  9. // Ilość słów w ciągu dekorowanych i nie dekorowanych
  10. //alert(countarray); //14
  11. // End Ilość słów w ciągu dekorowanych i nie dekorowanych
  12.  
  13. // Ilość słów pomiędzy pojedynczych <strong>...</strong>
  14. var strongsingle = new Array();
  15.  
  16. for(n in test) {
  17.  
  18. var x = test[n];
  19.  
  20. var g = x.search("<strong>");
  21.  
  22. var p = x.search("</strong>");
  23.  
  24. if(g == 0 && p > 0)
  25. {
  26. strongsingle[n] = n;
  27. }
  28.  
  29. }
  30. // End Ilość słów pojedynczych czyli <strong>...</strong>
  31.  
  32. arrstrongsingle = strongsingle.filter(function(){return true});
  33.  
  34. //1, 9, 11 wystapienia w tablicy pojedynczych słów oznaczonych znacznikiem <strong>...</strong>
  35.  
  36. // Ilość słów pomiędzy pojedynczych <em>...</em>
  37. var emsingle = new Array();
  38.  
  39. for(k in test) {
  40.  
  41. var x = test[k];
  42.  
  43. var g = x.search("<em>");
  44.  
  45. var p = x.search("</em>");
  46.  
  47. if(g == 0 && p > 0)
  48. {
  49. emsingle[k] = k;
  50. }
  51.  
  52. }
  53. // End Ilość słów pojedynczych czyli <em>...</em>
  54.  
  55. arremsingle = emsingle.filter(function(){return true});
  56.  
  57. //4,6,8,13 wystapienia w tablicy pojedynczych słów oznaczonych znacznikami <em>...</em>
  58.  
  59. var emmultistart = new Array();
  60. var emmultistop = new Array();
  61. var strongstart = new Array();
  62. var strongstop = new Array();
  63.  
  64. for(y in test) {
  65.  
  66. var x = test[y];
  67.  
  68. var g = x.search("<em>");
  69.  
  70. var p = x.search("</em>");
  71.  
  72. var r = x.search("<strong");
  73.  
  74. var j = x.search("</strong>");
  75.  
  76. if(g == 0)
  77. {
  78. emmultistart[y] = y;
  79. }
  80.  
  81. if(r == 0)
  82. {
  83. strongstart[y] = y;
  84. }
  85.  
  86. if(p > 0)
  87. {
  88. emmultistop[y] = y;
  89. }
  90.  
  91. if(j > 0)
  92. {
  93. strongstop[y] = y;
  94. }
  95.  
  96. }
  97.  
  98. arremmultistart = emmultistart.filter(function(){return true});
  99.  
  100. //0,4,6,8,13
  101. arremmultistop = emmultistop.filter(function(){return true});
  102.  
  103. //2,4,6,8,13
  104. arrstrongstart = strongstart.filter(function(){return true});
  105. //1,3,5,9,11,12
  106. arrstrongstop = strongstop.filter(function(){return true});
  107. //1,4,8,9,11,13
  108.  
  109. //alert(tablica2.toString());
  110.  
  111. var tablica1 = arrstrongsingle, tablica2 = arremmultistart, tablica3 = arremmultistop;
  112.  
  113. var przedzialy = tablica2.map(function(liczba_z_tablica2, i) {
  114. return [liczba_z_tablica2, tablica3[i]];
  115. }); // zmienna przedzialy teraz zawiera tablice z elementami [1,1], [3,4], [5,8]...... itp.
  116.  
  117. var przefiltrowane = tablica1.filter(function(liczba) {
  118. return (przedzialy.filter(function(przedzial) {
  119. return liczba >= przedzial[0] && liczba <= przedzial[1];
  120. })).length;
  121. });
  122.  
  123. alert(przefiltrowane);
  124.  
  125. }
  126. </script>
[JAVASCRIPT] pobierz, plaintext


Nie wiem daleczego ale jeżeli podam zmienna ktora jest tablicą arrstrongsingle z takimi wartośćami [1,9,11] to źle mi oblicza.

Dwie pozostałe tablice to arremmultistart [0,4,6,8,13], arremmultistop[2,4,6,8,13]. Czyli tylko jeden jest w przedziale.

A skrypt wyświetla mi 1 i 11.

Dodam że jeżeli napiszę tablicę ręcznie [1,9,11] skrypt to dobrze wylicza ale jak podaję wzmienna źle liczy.

Co może być nie tak?

Ten post edytował cykcykacz 18.04.2013, 14:08:24
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 28.12.2025 - 10:25