Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]Wyszukiwanie w tablicy
Forum PHP.pl > Forum > Przedszkole
neon88prv@gmail.com
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.
mortus
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.
kadlub
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
neon88prv@gmail.com
Dzięki wielkie,
zabieram się do przestudiowania tego co napisaliście
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.