ok
This commit is contained in:
parent
f1b7de040a
commit
2b874a73be
59 changed files with 1227 additions and 1232 deletions
|
@ -1,9 +1,9 @@
|
|||
describe("ucFirst", function() {
|
||||
it('делает первый символ заглавным', function() {
|
||||
assert.strictEqual(ucFirst("вася"), "Вася");
|
||||
it('Uppercases the first symbol', function() {
|
||||
assert.strictEqual(ucFirst("john"), "John");
|
||||
});
|
||||
|
||||
it('для пустой строки возвращает пустую строку', function() {
|
||||
it("Doesn't die on an empty string", function() {
|
||||
assert.strictEqual(ucFirst(""), "");
|
||||
});
|
||||
});
|
|
@ -1,26 +1,27 @@
|
|||
Мы не можем просто заменить первый символ, т.к. строки в JavaScript неизменяемы.
|
||||
We can't "replace" the first character, because strings in JavaScript are immutable.
|
||||
|
||||
Но можно пересоздать строку на основе существующей, с заглавным первым символом:
|
||||
But we can make a new string based on the existing one, with the uppercased first character:
|
||||
|
||||
```js
|
||||
var newStr = str[0].toUpperCase() + str.slice(1);
|
||||
let newStr = str[0].toUpperCase() + str.slice(1);
|
||||
```
|
||||
|
||||
Однако, есть небольшая проблемка -- в случае, когда строка пуста, будет ошибка.
|
||||
There's a small problem though. If `str` is empty, then `str[0]` is undefined, so we'll get an error.
|
||||
|
||||
Ведь `str[0] == undefined`, а у `undefined` нет метода `toUpperCase()`.
|
||||
There are two variants here:
|
||||
|
||||
Выхода два. Первый -- использовать `str.charAt(0)`, он всегда возвращает строку, для пустой строки -- пустую, но не `undefined`. Второй -- отдельно проверить на пустую строку, вот так:
|
||||
1. Use `str.charAt(0)`, as it always returns a string (maybe empty).
|
||||
2. Add a test for an empty string.
|
||||
|
||||
Here's the 2nd variant:
|
||||
|
||||
```js run
|
||||
function ucFirst(str) {
|
||||
// только пустая строка в логическом контексте даст false
|
||||
if (!str) return str;
|
||||
|
||||
return str[0].toUpperCase() + str.slice(1);
|
||||
}
|
||||
|
||||
alert( ucFirst("вася") );
|
||||
alert( ucFirst("john") ); // John
|
||||
```
|
||||
|
||||
P.S. Возможны и более короткие решения, использующие методы для работы со строками, которые мы пройдём далее.
|
|
@ -2,13 +2,11 @@ importance: 5
|
|||
|
||||
---
|
||||
|
||||
# Сделать первый символ заглавным
|
||||
# Uppercast the first character
|
||||
|
||||
Напишите функцию `ucFirst(str)`, которая возвращает строку `str` с заглавным первым символом, например:
|
||||
Write a function `ucFirst(str)` that returns the string `str` with the uppercased first character, for instance:
|
||||
|
||||
```js
|
||||
ucFirst("вася") == "Вася";
|
||||
ucFirst("") == ""; // нет ошибок при пустой строке
|
||||
ucFirst("john") == "John";
|
||||
```
|
||||
|
||||
P.S. В JavaScript нет встроенного метода для этого. Создайте функцию, используя `toUpperCase()` и `charAt()`.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue