Используйте JavaScript для подсчета слов в строке, без использования регулярных выражений

Уже много постов на тему того, как посчитать количество слов в строке в JavaScript, и я просто хотел пояснить, что я на них смотрел.

Подсчет слов в строке

Подсчитать количество слов в строке, используя JavaScript

Как очень новый программист, я хотел бы выполнять эту функцию без использования каких-либо регулярных выражений. Я ничего не знаю о регулярных выражениях и поэтому хочу использовать обычный код, даже если это не самый эффективный способ в реальном мире, ради обучения.

Я не могу найти ответ на свой вопрос в другом месте, поэтому я подумал, что я бы хотел спросить здесь, прежде чем я по умолчанию просто использовать регулярное выражение.

    function countWords(str) {
      return str.split(/\s+/).length;
    }

Моя общая цель - найти самое короткое слово в строке.

2 ответа

Решение

Итак, вот ответ на ваш новый вопрос:

My overall goal is to find the shortest word in the string.

Он разбивает строку, как и раньше, сортирует массив от коротких до длинных слов и возвращает первую запись / самое короткое слово:

function WordCount(str) { 
    var words = str.split(" ");

    var sortedWords = words.sort(function(a,b) {
        if(a.length<b.length) return -1;
        else if(a.length>b.length) return 1;
        else return 0;
    });
   return sortedWords[0];
}

console.log(WordCount("hello to the world"));

Кажется, вопрос немного изменился, но первая ссылка в вашем посте близка. Изменено, чтобы игнорировать двойные пробелы:

function WordCount(str) {
   return str
     .split(' ')
     .filter(function(n) { return n != '' })
     .length;
}

console.log(WordCount("hello      world")); // returns 2

Здесь нет регулярных выражений - просто разбейте строку в массив на пробелах, удалите пустые элементы (двойные пробелы) и посчитайте количество элементов в массиве.

Другие вопросы по тегам