@Greith
Учу JS

Почему тут TypeError у map?

Здравствуйте. Пытаюсь выполнить задания из учебника Ильи Кантора, тут нужно написать функцию, что бы переделать введённую строку, написанную через дефис в camelCase: background-color в backgroundColor
в строке где map ошибка: TypeError: str.split(...).map(...).str is undefined.
let str = prompt('Введите текст через дефис');
function camelize(str) {
    return str
            .split('-')
            .map(function(word, index) {
                  if (index == 0) {
                    return word;
                  } else {
                    return word[0].toUpperCase() + word.slice(1);
                  }
                }
              )
            .str.join('')
}

alert(camelize());
  • Вопрос задан
  • 54 просмотра
Решения вопроса 2
delphinpro
@delphinpro Куратор тега JavaScript
frontend developer
А зачем там str и что вы имели ввиду, написав это?
Просто уберите.

function camelize(str) {
    return str
        .split('-')
        .map(function(word, index) {
            if (index == 0) {
                return word;
            } else {
                return word[0].toUpperCase() + word.slice(1);
            }
        })
        .join('')
}

let str = prompt('Введите текст через дефис');
alert(camelize(str));


Можно и покороче

function camelize(str) {
    return str
        .split('-')
        .map((word, index) => index == 0 ? word : word[0].toUpperCase() + word.slice(1))
        .join('')
}

let str = prompt('Введите текст через дефис');
alert(camelize(str));


const upper = (word, index) => index == 0 ? word : word[0].toUpperCase() + word.slice(1);
function camelize(str) {
    return str
        .split('-')
        .map(upper)
        .join('')
}

let str = prompt('Введите текст через дефис');
alert(camelize(str));


const upper = (word, index) => index == 0 ? word : word[0].toUpperCase() + word.slice(1);
const camelize = str => str.split('-').map(upper).join('');

let str = prompt('Введите текст через дефис');
alert(camelize(str));
Ответ написан
sergiks
@sergiks Куратор тега JavaScript
♬♬
alert(camelize(str));
надо же передать аргумент в функцию..

и зачем тут .str в .str.join('') – уберите, оставьте только .join('')
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы