• 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

Object Storage Arubacloud
0 głosów
2,907 wizyt
pytanie zadane 6 grudnia 2018 w JavaScript przez aniaska4 Obywatel (1,010 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

+2 głosów
odpowiedź 6 grudnia 2018 przez Tomek Sochacki Ekspert (227,510 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 (14,520 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 Obywatel (1,010 p.)
super, dzięki. Właśnie kombinuje ze split :)
komentarz 6 grudnia 2018 przez RafalS VIP (122,820 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 Pasjonat (15,790 p.)
Da się, wskazówka: Zauważ, że słowa są oddzielone spacjami.
komentarz 6 grudnia 2018 przez aniaska4 Obywatel (1,010 p.)
ok, dzięki. Też coś kombinowałam w tę stronę. czy tu chodzi o metodę split?
komentarz 6 grudnia 2018 przez VirtualMember Pasjonat (15,790 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 Obywatel (1,010 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 VIP (123,120 p.)
Bo przekazałeś tablicę do funkcji a nie stringa.
komentarz 7 grudnia 2018 przez aniaska4 Obywatel (1,010 p.)

hmmm no tak indecision

Podobne pytania

+1 głos
1 odpowiedź 211 wizyt
pytanie zadane 9 maja 2019 w JavaScript przez aniaska4 Obywatel (1,010 p.)
0 głosów
3 odpowiedzi 4,040 wizyt
0 głosów
1 odpowiedź 485 wizyt
pytanie zadane 19 maja 2016 w C i C++ przez sebask08 Użytkownik (510 p.)

92,555 zapytań

141,403 odpowiedzi

319,554 komentarzy

61,939 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...