Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2016, 16:55   #1
Yukina21
Новичок
Джуниор
 
Регистрация: 10.04.2016
Сообщений: 2
По умолчанию Помогите написать функцию

Помогите написать функцию в google sheet которая с помошью параметра получает текст и целое число.Функция должна посчитать сколько раз в тексте встречаются слова с количеством букв n

Ну как то так он просто количество слов в строке считает :

Код:
function WordCountSpace(st) {
st = st.trim();
while (st.indexOf(" ") != -1)
st = st.replace(" ", " ");
starr = st.split(" ");
return starr.length;
}
А как сделать так что-бы считать только те слова в которых к примеру 5 букв?


______________________
Используйте тег [CODE] (кнопка с решеткой # в форме сообщения) при вставке кода на форум.

Последний раз редактировалось Alex11223; 10.04.2016 в 16:59.
Yukina21 вне форума Ответить с цитированием
Старый 10.04.2016, 17:03   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
А как сделать так что-бы считать только те слова в которых к примеру 5 букв?
Разделить строку на слова (видимо в starr вы это и сделали), пройти по полученному массиву (for или forEach) и считать только те элементы, где Length == 5.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 10.04.2016, 23:31   #3
Yukina21
Новичок
Джуниор
 
Регистрация: 10.04.2016
Сообщений: 2
По умолчанию

написала так
Код:
function WordCountSpace(st,n) {
st = st.trim(),
    count=0;
while (st.indexOf(" ") != -1)
st = st.replace(" ", " ");
starr = st.split(" ");
  for (i=0;i<starr.lenghth;i++){if 
    ( star.length==n){count +=1;}
return count;
}
                            }
выдаёт ошибку-"Не удается вызвать метод "trim" объекта undefined"
Yukina21 вне форума Ответить с цитированием
Старый 11.04.2016, 00:13   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Так ошибка ж о том, что st undefined. Видимо вы что-то не то передаете при вызове WordCountSpace.

И в цикле где if вам надо не starr.Length, а starr[i].Length если вы хотите получить длину строки в массиве, а не размер массива.

И форматируйте код нормально, например так

Код:
function WordCountSpace(st, n) {
    st = st.trim();
    while (st.indexOf(" ") != -1)
        st = st.replace(" ", " ");
    var starr = st.split(" ");
    var count = 0;
    for (var i = 0; i < starr.length; i++) {
        if (starr[i].length == n) {
            count += 1;
        }
    }
    return count;
}
Еще не очень понятен смысл while тут, replace ж и так все заменит сразу.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 14.04.2016, 20:27   #5
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Код:
st = st.replace(" ", " ");
шедевр!
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 14.04.2016, 23:31   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Naive Посмотреть сообщение
Код:
st = st.replace(" ", " ");
шедевр!
Да, однозначно!
Так оно ещё должно с этим кодом замены в бесконечный цикл уходить...
Возможно, что там был двойной пробел, который потерялся
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите написать функцию. shelter09 Помощь студентам 3 04.12.2014 16:07
Помогите написать функцию(Паскаль) Паскалька^^ Помощь студентам 2 15.11.2009 22:47
помогите написать функцию SkCr Microsoft Office Excel 5 14.03.2009 23:47
помогите написать функцию SkCr Помощь студентам 2 14.03.2009 21:24
Помогите написать функцию Черничный Общие вопросы Delphi 4 13.08.2008 07:02