Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
24 / 18 / 9
Регистрация: 27.04.2017
Сообщений: 122

Простая задачка с циклами

31.07.2018, 14:34. Показов 773. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
сабж:
Using the JavaScript language, have the function LetterCapitalize(str) take the str parameter being passed and capitalize the first letter of each word. Words will be separated by only one space.


Вот так работает
JavaScript
1
2
3
4
5
6
7
function LetterCapitalize(str){ 
    var newArr = str.split(' ');
    for(var i = 0; i < newArr.length; i++){
        newArr[i] = newArr[i][0].toUpperCase() + newArr[i].slice(1); ;
    }
    return newArr.join(' ');
}
Вот так не работает
JavaScript
1
2
3
4
5
6
7
8
function LetterCapitalize(str){ 
    var newArr = str.split(' ');
    for(var i = 0; i < newArr.length; i++){
        newArr[i][0].toUpperCase();
    }
    return newArr.join(' ');
}
}
Почему во втором варианте внутри цикла мы не можем так делать?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
31.07.2018, 14:34
Ответы с готовыми решениями:

НЕ простая задачка
Добрый день! Решаем с ребенком задачу из олимпиады по математике. В целом задача легкая и решили быстро, но появилась идея...

Простая задачка. Подскажите с решением
Здравствуйте! Я только начал изучать JavaScript и пока не могу писать код нормальный. Подскажите пожалуйста. Была лёгкая задачка....

простая задачка с циклами
Помогите со 2 задачей, ну или придумуйте свое подобное

6
Модератор
Эксперт HTML/CSS
 Аватар для AlexZaw
2381 / 1741 / 677
Регистрация: 07.08.2016
Сообщений: 4,095
31.07.2018, 15:29
На самом деле метод срабатывает, вот только он не модифицирует исходную строку, а целевая строка возвращается функцией. Следовательно вам ее нужно куда то сохранить, что вы и делаете в первом варианте.
0
24 / 18 / 9
Регистрация: 27.04.2017
Сообщений: 122
31.07.2018, 15:38  [ТС]
AlexZaw, спасибо за комент, но не очень понял
вот что мы делаем:
- принимаем в функцию строку
- разбиваем её на массив по разделителю "пробел"
- итерируемся по элементам массива (т.е. по словам) и пытаемся для каждого элемента сделать первую букву заглавной.

Кстати, вот так
JavaScript
1
newArr[i][0] = newArr[i][0].toUpperCase();
тоже не работает

Почему мы не можем внутри цикла for обратиться к NewArr и изменить значения элементов массива?
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
31.07.2018, 16:04
123orc123, вопрос здесь не в циклах, а в принципах работы со строками

к любому символу строки можно обратиться либо с помощью метода charAt (индекс символа), либо используя индекс символа в квадратных скобках
но обратиться можно только для чтения этого символа
изменить символ внутри строки этими способами нельзя
1
Модератор
Эксперт HTML/CSS
 Аватар для AlexZaw
2381 / 1741 / 677
Регистрация: 07.08.2016
Сообщений: 4,095
31.07.2018, 16:04
Цитата Сообщение от 123orc123 Посмотреть сообщение
Почему мы не можем внутри цикла for обратиться к NewArr и изменить значения элементов массива?
Цитата с https://learn.javascript.ru
"Содержимое строки в JavaScript нельзя изменять. Нельзя взять символ посередине и заменить его. Как только строка создана – она такая навсегда. Можно лишь создать целиком новую строку и присвоить в переменную вместо старой"
1
the hardway first
Эксперт JS
 Аватар для j2FunOnly
2475 / 1847 / 910
Регистрация: 05.06.2015
Сообщений: 3,610
31.07.2018, 16:13
Цитата Сообщение от 123orc123 Посмотреть сообщение
Кстати, вот так
JavaScript
1
newArr[i][0] = newArr[i][0].toUpperCase();
тоже не работает
Потому что строка - это не массив, и вы не можете таким образом менять строки:
https://developer.mozilla.org/... ter_access
Другим способом (введённым в ECMAScript 5) является рассмотрение строки как массивоподобного объекта, в котором символы имеют соответствующие числовые индексы:
JavaScript
1
return 'кот'[1]; // вернёт "о"
При доступе к символам посредством нотации с квадратными скобками, попытка удалить символ, или присвоить значение числовому свойству закончится неудачей, поскольку эти свойства являются незаписываемыми и ненастраиваемыми.
1
24 / 18 / 9
Регистрация: 27.04.2017
Сообщений: 122
31.07.2018, 16:30  [ТС]
всем спасибо, теперь разобрался
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.07.2018, 16:30
Помогаю со студенческими работами здесь

Простая задачка про лягушку с функцией и циклами for и while
Есть улица шириной 2.5 метра и лягушка хочет её пересечь. Первым прыжком она преодолевает 1 метр, но каждый её след. прыжок - это лишь...

Задачка с циклами
/ var chisl,a,b,x: real; begin write('Введите x:'); readln(x); while b&lt;6 do begin b:=b+1;

Задачка с циклами (Вычислить значение выражения)
Вычислить значение выражения ( в вложении). Я написал вот ето: #include &lt;conio.h&gt; #include &lt;iostream&gt; #include...

Простая задачка
Нужен код для Dev C++ Найти суму цифр четырёхзначного натурального числа. Буду очень благодарен.

Простая задачка
Хотя может задачка и не такая простая. В чём суть. Есть библиотека игрового сервера, там файл GameServer.class, в котором прописан запуск...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru