• 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

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
3,275 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,490 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,460 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ź 248 wizyt
pytanie zadane 9 maja 2019 w JavaScript przez aniaska4 Obywatel (1,010 p.)
0 głosów
3 odpowiedzi 4,268 wizyt
0 głosów
1 odpowiedź 678 wizyt
pytanie zadane 19 maja 2016 w C i C++ przez sebask08 Użytkownik (510 p.)

93,100 zapytań

142,063 odpowiedzi

321,521 komentarzy

62,442 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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...