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

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

31.07.2018, 14:34. Показов 751. Ответов 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
2379 / 1739 / 677
Регистрация: 07.08.2016
Сообщений: 4,093
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
2379 / 1739 / 677
Регистрация: 07.08.2016
Сообщений: 4,093
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
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru