Я работал над тестом JS на Udacity.
строка имени из двух слов, отформатированная с использованием любого сочетания заглавных букв, можете ли вы манипулировать этой строкой, чтобы убедиться, что имя имеет заглавную первую букву, а фамилия полностью заглавная? Предположим, что между именами есть пробел. Например, превращение строки типа «cAMERON PITTMAN» в «Cameron PITTMAN». Ваш ответ должен быть единственной строкой, сохраненной в переменной с именем finalName.
Вот мой входной код:
var name = "AlbERt EINstEiN";
function nameChanger(oldName) {
var finalName = oldName;
// Your code goes here!
var firstName = name.slice(0,7);
var firstNameA = firstName.charAt(0);
firstNameA = firstNameA.toUpperCase();
firstName = firstName.toLowerCase();
firstName = firstName.substr(1);
var lastName = name.slice(7);
lastName = lastName.toUpperCase();
finalName = firstNameA + firstName + lastName;
// Don't delete this line!
return finalName;
}
// Did your code work? The line below will tell you!
console.log(nameChanger(name));
Консоль возвращает:
08 12 2016 09: 54: 08.533: с неограниченным параллелизмом 08 12 2016 09: 54: 08.764: LOG: 'Albert EINSTEIN'
Я знаю, что мой код не самый оптимизированный, но поскольку он возвращает нужную строку, он должен быть сразу после отправки. Тем не менее, я получил только это:
-> ТЕСТ: nameChanger должен возвращать интернационализированное имя. Вернул правильное имя: FAILED ожидал, что «Альберт Эйнштейн» будет равен «Джеффу Норману»
Что-то не так с моим кодом?
4 ответа
Попробуйте как это объяснение в коде по комментариям:
- разделить имя и фамилию
- получить первую букву имени в верхнем регистре и добавить оставшуюся часть имени в нижнем регистре
- добавить второе имя заглавными буквами
function nameChanger(oldName) {
//your code starts here in your case you need to return out variable
var d = oldName.split(" ") // this will return you array of two strings
var out = d[0][0].toUpperCase() //take the first string first letter capitalize
out += d[0].substr(1).toLowerCase() + " " //add the remaining firstname by lowercase substr will give you sub string from 1 index
out+= d[1].toUpperCase(); //add the second name by upper case
return out;
}
console.log(nameChanger("AlbeRt Eienstien"))
Вы должны использовать аргумент в качестве другого уже упомянутого комментатора.
Я не очень изменил ваш код, кстати.
ПРИМЕЧАНИЕ. вы хотите задавать вопросы, которые помогают больше людям, чем просто для ответа на вопрос. :-)
Хорошего дня - надеюсь, вы любите учиться кодировать.
Посмотрите, поможет ли это.
function nameChanger(oldName) {
var finalName = oldName;
// Your code goes here!
var firstName = oldName.split(' ')[0];
var firstNameA = firstName.charAt(0);
firstNameA = firstNameA.toUpperCase();
firstName = firstName.toLowerCase();
firstName = firstName.substr(1);
var lastName = oldName.split(' ')[1];
lastName = lastName.toUpperCase();
finalName = firstNameA + firstName + ' ' + lastName;
// Don't delete this line!
return finalName;
}
// Did your code work? The line below will tell you!
console.log(nameChanger('geOff NoRmAn'));
Вы можете использовать следующий код для достижения результата.
var name = "cAmEROn PittMAN";
var names = name.split(" ");
var finalname = names[0].toString().substring(0, 1).toUpperCase() + names[0].toString().substring(1,names[0].length).toLowerCase() + " " + names[1].toString().toUpperCase();
console.log(finalname);
Здесь finalname возвращает «Cameron PITTMAN». Используйте split вместо slice, и он вернет оба слова в массиве, и вы можете манипулировать данными так, как вам нужно.
Я думал, что это поможет в будущем:
var name = "AlbERt EINstEiN";
function nameChanger(oldName) {
var finalName = oldName;
// Your code goes here!
var names = oldName.split(" "); //Split the string in an array of 2 elements, using the space (" ") as separator.
names[0] = names[0].slice(0,1).toUpperCase() + names[0].slice(1).toLowerCase(); //Converts first letter into UpperCase + rest of firstname to LowerCase.
names[1] = names[1].toUpperCase(); //Converts lastname to UpperCase.
finalName = names.join(" "); //Joins both names into a string separated by a space.
// Don't delete this line!
return finalName;
};
// Did your code work? The line below will tell you!
console.log(nameChanger(name));
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.