Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 31.07.2018, 12:45
Аватар для MC-XOBAHCK
Профессор
Отправить личное сообщение для MC-XOBAHCK Посмотреть профиль Найти все сообщения от MC-XOBAHCK
 
Регистрация: 06.08.2017
Сообщений: 473

Задачка с символами - сделать заглавными
Затыкаю пробелы в основах JS, обнаружил что пропустил тему с символами charAt().
Вроде ничего сложного и легко запоминается, но не могу решить такую простую задачку:

Нужно написать функцию принимающую массив из слов, которая первый символ каждого слова из массива сделает заглавными буквами и вернёт массив строкой.

Пишу код:
function strok(arr) {
    for (let i = 0; i < arr.length; i++) {
        arr[i].charAt(0) = arr[i].charAt(0).toUpperCase();
    }
    return arr.join(' ');
}
console.log(strok(['наша', 'маша', 'громко', 'плачет']));


получаю ошибку.
Покажите пжл, как правильно сделать.
Ответить с цитированием
  #2 (permalink)  
Старый 31.07.2018, 12:54
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

MC-XOBAHCK,
charAt это только get, но не set.
Ответить с цитированием
  #3 (permalink)  
Старый 31.07.2018, 12:55
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

Сообщение от MC-XOBAHCK
как правильно сделать.
arr[i] = ....
Ответить с цитированием
  #4 (permalink)  
Старый 31.07.2018, 13:51
Аватар для MC-XOBAHCK
Профессор
Отправить личное сообщение для MC-XOBAHCK Посмотреть профиль Найти все сообщения от MC-XOBAHCK
 
Регистрация: 06.08.2017
Сообщений: 473

Спасибо за объяснение!
По началу я завис и ещё попробовал вместо массива переменную прокачать:
function hello(name) {
    name.charAt(0) = name.charAt(0).toUpperCase();
    
    return `Здравствуй, ${name}`;
}
console.log(hello('гость'));


Сдаваться не стал и попробовал добавить переменную : )
function hello(name) {
    let up = name.charAt(0).toUpperCase();
    name.charAt(0) = up;

    return `Здравствуй, ${name}`;
}
console.log(hello('гость'));


Потом ещё раз перечитал ответы и понял смысл написанного.
Геттеры и сеттеры - как раз вчера начал углубляться в эту тему, но нужно некоторое время и практика чтоб всё отложилось. Планирую после освоения get/set начать знакомиться с React, думаю тогда уже можно будет.
Спасибо!
Ответить с цитированием
  #5 (permalink)  
Старый 31.07.2018, 15:27
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Сообщение от рони
arr[i] = ....
.... = arr[i].charAt(0).toUpperCase() + arr[i].substr(-arr[i].length + 1);
Ответить с цитированием
  #6 (permalink)  
Старый 31.07.2018, 15:32
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

MC-XOBAHCK,
function strok(arr) {
    return arr.map(a => (a = [...a], a[0] = a[0].toUpperCase(), a.join(''))).join(' ');
}
console.log(strok(['наша', 'маша', 'громко', 'плачет']));
Ответить с цитированием
  #7 (permalink)  
Старый 31.07.2018, 15:33
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

Сообщение от Dilettante_Pro
(-arr[i].length + 1);

1
Ответить с цитированием
  #8 (permalink)  
Старый 31.07.2018, 15:47
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

рони,
Ну да... Я по складам... Чтобы понятно - где что. Похоже, переборщил...
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите сделать на ajax или java. Bajex AJAX и COMET 2 20.06.2013 05:13
Исчезающие меню, как сделать стандартными методами? Astrey Общие вопросы Javascript 14 08.03.2013 20:28
filter(this,this) как правильно сделать? Smip jQuery 5 23.02.2013 03:07
Как сделать что бы при регистрации человека на моем сайте у него не появлялось... drunkwolfs Общие вопросы Javascript 2 07.08.2012 10:58
Как сделать как в JQ? faforty Общие вопросы Javascript 8 14.11.2011 01:35