mam skrypt który szuka czy dana liczba jest w przedziale.
Założenie jest takie: mamy 3 tablice.
Tablica pierwsza są to liczby które mają być sprawdze czy są w przedziale.
Przedział jest określany z dwóch pozostałych tablic:
od 0 do 2
od 4 do 4
od 6 do 6
od 8 do 8
od 13 do 13
<script type="text/javascript"> function obliczenie() { var tablica1 = [1,9,11], tablica2 = [0,4,6,8,13], tablica3 = [2,4,6,8,13]; var przedzialy = tablica2.map(function(liczba_z_tablica2, i) { return [liczba_z_tablica2, tablica3[i]]; }); // zmienna przedzialy teraz zawiera tablice z elementami [1,1], [3,4], [5,8]...... itp. var przefiltrowane = tablica1.filter(function(liczba) { return (przedzialy.filter(function(przedzial) { return liczba >= przedzial[0] && liczba <= przedzial[1]; })).length; }); alert(przefiltrowane); } </script>
I szukamy sobie. Skrypt działa fajnie tylko mam problem ponieważ dodając go do swojego skryptu błędnie mi wylicza wartość.
W skrypcie zamiast [1,9,11] podaje zmienna, ktora jest tablica powinna wyświetlić mi tylko 1 a jak podaje zmienna wyświetla mi 1 i 11.
<script type="text/javascript"> // skryp liczący słowa, słowa pogrubione, słowa wersaliki(kapitaliki duże litery) function button() { 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>"; var test = string.split(" "); var countarray = (test.length); // Ilość słów w ciągu dekorowanych i nie dekorowanych //alert(countarray); //14 // End Ilość słów w ciągu dekorowanych i nie dekorowanych // Ilość słów pomiędzy pojedynczych <strong>...</strong> var strongsingle = new Array(); for(n in test) { var x = test[n]; var g = x.search("<strong>"); var p = x.search("</strong>"); if(g == 0 && p > 0) { strongsingle[n] = n; } } // End Ilość słów pojedynczych czyli <strong>...</strong> arrstrongsingle = strongsingle.filter(function(){return true}); //1, 9, 11 wystapienia w tablicy pojedynczych słów oznaczonych znacznikiem <strong>...</strong> // Ilość słów pomiędzy pojedynczych <em>...</em> var emsingle = new Array(); for(k in test) { var x = test[k]; var g = x.search("<em>"); var p = x.search("</em>"); if(g == 0 && p > 0) { emsingle[k] = k; } } // End Ilość słów pojedynczych czyli <em>...</em> arremsingle = emsingle.filter(function(){return true}); //4,6,8,13 wystapienia w tablicy pojedynczych słów oznaczonych znacznikami <em>...</em> var emmultistart = new Array(); var emmultistop = new Array(); var strongstart = new Array(); var strongstop = new Array(); for(y in test) { var x = test[y]; var g = x.search("<em>"); var p = x.search("</em>"); var r = x.search("<strong"); var j = x.search("</strong>"); if(g == 0) { emmultistart[y] = y; } if(r == 0) { strongstart[y] = y; } if(p > 0) { emmultistop[y] = y; } if(j > 0) { strongstop[y] = y; } } arremmultistart = emmultistart.filter(function(){return true}); //0,4,6,8,13 arremmultistop = emmultistop.filter(function(){return true}); //2,4,6,8,13 arrstrongstart = strongstart.filter(function(){return true}); //1,3,5,9,11,12 arrstrongstop = strongstop.filter(function(){return true}); //1,4,8,9,11,13 //alert(tablica2.toString()); var tablica1 = arrstrongsingle, tablica2 = arremmultistart, tablica3 = arremmultistop; var przedzialy = tablica2.map(function(liczba_z_tablica2, i) { return [liczba_z_tablica2, tablica3[i]]; }); // zmienna przedzialy teraz zawiera tablice z elementami [1,1], [3,4], [5,8]...... itp. var przefiltrowane = tablica1.filter(function(liczba) { return (przedzialy.filter(function(przedzial) { return liczba >= przedzial[0] && liczba <= przedzial[1]; })).length; }); alert(przefiltrowane); } </script>