• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak policzyć liczbę wyrazów w zdaniu

0 głosów
225 wizyt
pytanie zadane 6 grudnia 2018 w JavaScript, jQuery, AJAX przez aniaska4 Użytkownik (870 p.)

Hej nie wiem jak policzyć liczbę wyrazów w zdaniu. Cały czas wychodzi mi tylko liczba liter. Jeżeli mam tablice

const arr = ["My name is Bond, James Bond"],

to da się w ogóle cos takiego policzyć, czy dopiero wtedy gdy każdy wyraz jest oddzielony cudzysłowiem?

4 odpowiedzi

+3 głosów
odpowiedź 6 grudnia 2018 przez Tomek Sochacki Mędrzec (188,580 p.)
wybrane 7 grudnia 2018 przez aniaska4
 
Najlepsza

Problem nie jest taki prosty do rozwiązania... Jeden z przykładów:

const str = "My name is Bond, James Bond. \nI live in England."
const words = str.replace(/\s+/g, ' ').split(' ');

words; // ["My", "name", "is", "Bond,", "James", "Bond.", "I", "live", "in", "England."]
words.length; // 10

Zrobiłem tu parę założeń, dość istosnych:

  1. dopuszczam istnienie róznych rodzajów białych znaków, nie tylko spacje, ale i taby, znaki nowego wiersza itp. Jeśli jest ich kilka obok siebie to zmieniam na jeden.
  2. Zakładam, że wyrazy dzieli tylko spacja - tu kwestia rozważenia np. jak rozumiesz "biało-czerwony", jako jeden czy dwa wyrazy?

Pytanie też czy godzisz się na to, że w wyrazach zostają różne znaki ?!&% itp. oraz ak traktujemy cyfry?

zbyt mało danych aby można skonstruować kompletne rozwiązanie. Najlepiej zrób unit testy i pokaż nam swoje asercje, to dopasujemy do tego body metody liczącej słowa. Tak najlepiej podchodzić do takich problemów.

0 głosów
odpowiedź 6 grudnia 2018 przez Snejki Stary wyjadacz (12,380 p.)

Możesz to zrobić np. w taki sposób:

var length = arr[0].split(" ").length;

Więcej info:

SPLIT

LENGTH

 

komentarz 6 grudnia 2018 przez aniaska4 Użytkownik (870 p.)
super, dzięki. Właśnie kombinuje ze split :)
komentarz 6 grudnia 2018 przez RafalS VIP (112,950 p.)
edycja 6 grudnia 2018 przez RafalS
Czy to aby przypadkiem nie jest równoważne z policzeniem spacji :P?

EDIT, które najwidoczniej w JS robi się regexem lub splitem, więc cofam to. Ten język nie przestaje mnie zadziwiać :D
0 głosów
odpowiedź 6 grudnia 2018 przez VirtualMember Stary wyjadacz (11,890 p.)
Da się, wskazówka: Zauważ, że słowa są oddzielone spacjami.
komentarz 6 grudnia 2018 przez aniaska4 Użytkownik (870 p.)
ok, dzięki. Też coś kombinowałam w tę stronę. czy tu chodzi o metodę split?
komentarz 6 grudnia 2018 przez VirtualMember Stary wyjadacz (11,890 p.)
Bardziej chodzi mi o to, że między każdymi dwoma słowami jest spacja, więc jak masz zdanie:

"ala ma kota" to masz 2 spacje i 2+1 słów.
0 głosów
odpowiedź 7 grudnia 2018 przez aniaska4 Użytkownik (870 p.)

Dziękuję Wam za odpowiedzi. Udało mi się rozwikłać tę zagadkę i użyć odpowiednio tej metody,a także zwiększyć zakres mojej wiedzy w ogóle w zakresie tablic. Próbowałam ten zapis ułożyć  w funkcję:

function numberOfWords(arr){
   
        const newWords = arr.split(' ').length;
        console.log(newWords)
      
}
numberOfWords(['Ania lubi oglądać teletubisie'])

ale wywala mi błąd w consoli, że"arr.split is not a function". No i teraz jeśli mogłabym Was prosić znowu o pomoc-o wyjasnienia, jak to jest.. jak mam zwykły string i używam metody split, to jest ok, a jak chce ubrać to w funkcję to wywala mi błąd. Już mi sie to zdarzało i nie wiedziałam dlaczego. Czy to oznacza, że w przypadku takiego zapisu trzeba to inaczej jeszcze ubrać?

komentarz 7 grudnia 2018 przez pablop76 Szeryf (97,850 p.)
Bo przekazałeś tablicę do funkcji a nie stringa.
komentarz 7 grudnia 2018 przez aniaska4 Użytkownik (870 p.)

hmmm no tak indecision

Podobne pytania

+1 głos
1 odpowiedź 88 wizyt
0 głosów
3 odpowiedzi 729 wizyt
0 głosów
1 odpowiedź 73 wizyt
pytanie zadane 19 maja 2016 w C i C++ przez sebask08 Użytkownik (500 p.)
Porady nie od parady
Forum posiada swój własny chat IRC, dzięki któremu będziesz mógł po prostu pogadać z innymi Pasjonatami lub zapytać o jakiś problem. Podstrona z chatem znajduje się w menu pod ikoną człowieka w dymku.IRC

66,394 zapytań

113,148 odpowiedzi

239,531 komentarzy

46,659 pasjonatów

Przeglądających: 309
Pasjonatów: 11 Gości: 298

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...