Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript]Wyszukiwanie w tablicy
neon88prv@gmail....
post 19.12.2011, 16:56:59
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 7.06.2009

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


Witam
Uczę się JS i mam pewne zadanie z którym nie mogę sobie poradzić.

Mam tablicę np taką:

slowa = ["ela", "ale", "eal", "ael", "iza", "zlo"];

W tej tablicy muszę odnaleźć wszystkie "stringi" składające się z liter zawartych w słowie: ela w dowolnej kolejności.

Z tym, że nie mogę się ograniczać tylko do tego słowa ponieważ w każdej chwili może ono zostać zmienione na inne.
Go to the top of the page
+Quote Post
mortus
post 19.12.2011, 18:48:38
Post #2





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Nic prostszego - pętla w pętli w pętli:
[JAVASCRIPT] pobierz, plaintext
  1. var words = ["ela", "ale", "eal", "ael", "iza", "zlo"];
  2. var pattern = "ela";
  3. var isCompatible = false;
  4. var compatibleWords = new Array();
  5. var index = 0;
  6. for(var i = 0; i < words.length; i++) {
  7. for(var j = 0; j < words[i].length; j++) {
  8. isCompatible = false;
  9. for(var k = 0; k < pattern.length; k++) {
  10. if(pattern[k] == words[i][j]) {
  11. isCompatible = true;
  12. }
  13. }
  14. if(!isCompatible) break;
  15. }
  16. if(!isCompatible) continue;
  17. compatibleWords[index++] = words[i];
  18. }
  19. for(var i = 0; i < compatibleWords.length; i++) {
  20. alert(compatibleWords[i]);
  21. }
[JAVASCRIPT] pobierz, plaintext

Zobacz na "żywo"!

EDIT: Oczywiście rozwiązań może być tyle ilu programistów. Można np. drugą pętlę zastąpić metodą .indexOf(). Pokombinuj.

Ten post edytował mortus 19.12.2011, 18:54:16
Go to the top of the page
+Quote Post
kadlub
post 19.12.2011, 19:47:57
Post #3





Grupa: Zarejestrowani
Postów: 548
Pomógł: 105
Dołączył: 4.06.2010

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


ja zrobiłem trochę inaczej niż kolega wyżej

[JAVASCRIPT] pobierz, plaintext
  1. <script type="text/javascript">
  2. var tab=["ela", "ale", "eal", "ael", "iza", "zlo"];
  3. var wynik;
  4. function szukaj(wyraz){
  5.  
  6. slowa = wyraz;
  7. var dd = slowa.length;
  8. var litery = slowa.charAt(0)
  9. for (n = 1; n < dd; ++n){
  10. litery+=','+slowa.charAt(n);
  11.  
  12. var reg = RegExp("["+litery+"]{"+dd+"}","gi");
  13. }
  14.  
  15. var i=0;
  16. while(i < tab.length){
  17.  
  18. index = tab[i].search(reg);
  19.  
  20. if (index != -1)
  21. {
  22. wynik+=','+tab[i];
  23. }
  24. i++;
  25. }
  26. document.write("pasujące słowa to:"+wynik);
  27. }
  28. szukaj("zia");
  29. </script>
[JAVASCRIPT] pobierz, plaintext


Ten post edytował kadlub 19.12.2011, 19:49:48
Go to the top of the page
+Quote Post
neon88prv@gmail....
post 20.12.2011, 12:07:13
Post #4





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 7.06.2009

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


Dzięki wielkie,
zabieram się do przestudiowania tego co napisaliście
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 24.06.2025 - 17:04