• 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
148 wizyt
pytanie zadane 6 grudnia 2018 w JavaScript, jQuery, AJAX przez aniaska4 Początkujący (440 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 (166,350 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,100 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 Początkujący (440 p.)
super, dzięki. Właśnie kombinuje ze split :)
komentarz 6 grudnia 2018 przez RafalS VIP (105,130 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 Dyskutant (9,850 p.)
Da się, wskazówka: Zauważ, że słowa są oddzielone spacjami.
komentarz 6 grudnia 2018 przez aniaska4 Początkujący (440 p.)
ok, dzięki. Też coś kombinowałam w tę stronę. czy tu chodzi o metodę split?
komentarz 6 grudnia 2018 przez VirtualMember Dyskutant (9,850 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 Początkujący (440 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 (86,790 p.)
Bo przekazałeś tablicę do funkcji a nie stringa.
komentarz 7 grudnia 2018 przez aniaska4 Początkujący (440 p.)

hmmm no tak indecision

Podobne pytania

0 głosów
3 odpowiedzi 588 wizyt
0 głosów
1 odpowiedź 69 wizyt
pytanie zadane 19 maja 2016 w C i C++ przez sebask08 Użytkownik (500 p.)
0 głosów
3 odpowiedzi 103 wizyt
Porady nie od parady
Komentarze do pytań nie służą do odpowiadania, od tego jest wydzielona sekcja odpowiedzi. Funkcją komentarzy jest natomiast możliwość uzyskania dodatkowych informacji na temat samego posta.Komentarze

61,385 zapytań

107,325 odpowiedzi

223,536 komentarzy

33,148 pasjonatów

Przeglądających: 98
Pasjonatów: 5 Gości: 93

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.

...