• 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

VPS Starter Arubacloud
0 głosów
2,874 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,060 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ź 207 wizyt
pytanie zadane 9 maja 2019 w JavaScript przez aniaska4 Obywatel (1,010 p.)
0 głosów
3 odpowiedzi 4,017 wizyt
0 głosów
1 odpowiedź 456 wizyt
pytanie zadane 19 maja 2016 w C i C++ przez sebask08 Użytkownik (510 p.)

92,452 zapytań

141,262 odpowiedzi

319,085 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...