update
This commit is contained in:
parent
962caebbb7
commit
87bf53d076
1825 changed files with 94929 additions and 0 deletions
|
@ -0,0 +1,4 @@
|
|||
function truncate(str, maxlength) {
|
||||
return (str.length > maxlength) ?
|
||||
str.slice(0, maxlength - 3) + '...' : str;
|
||||
}
|
16
1-js/4-data-structures/1-string/3-truncate/_js.view/test.js
Normal file
16
1-js/4-data-structures/1-string/3-truncate/_js.view/test.js
Normal file
|
@ -0,0 +1,16 @@
|
|||
describe("truncate", function() {
|
||||
it("обрезает строку до указанной длины (включая троеточие)", function() {
|
||||
assert.equal(
|
||||
truncate("Вот, что мне хотелось бы сказать на эту тему:", 20),
|
||||
"Вот, что мне хоте..."
|
||||
);
|
||||
});
|
||||
|
||||
it("не меняет короткие строки", function() {
|
||||
assert.equal(
|
||||
truncate("Всем привет!", 20),
|
||||
"Всем привет!"
|
||||
);
|
||||
});
|
||||
|
||||
});
|
28
1-js/4-data-structures/1-string/3-truncate/solution.md
Normal file
28
1-js/4-data-structures/1-string/3-truncate/solution.md
Normal file
|
@ -0,0 +1,28 @@
|
|||
Так как окончательная длина строки должна быть `maxlength`, то нужно её обрезать немного короче, чтобы дать место для троеточия.
|
||||
|
||||
```js
|
||||
//+ run
|
||||
function truncate(str, maxlength) {
|
||||
if (str.length > maxlength) {
|
||||
return str.slice(0, maxlength - 3) + '...';
|
||||
// итоговая длина равна maxlength
|
||||
}
|
||||
|
||||
return str;
|
||||
}
|
||||
|
||||
alert(truncate("Вот, что мне хотелось бы сказать на эту тему:", 20));
|
||||
alert(truncate("Всем привет!", 20));
|
||||
```
|
||||
|
||||
Можно было бы написать этот код ещё короче:
|
||||
|
||||
```js
|
||||
//+ run
|
||||
function truncate(str, maxlength) {
|
||||
return (str.length > maxlength) ?
|
||||
str.slice(0, maxlength - 3) + '...' : str;
|
||||
}
|
||||
```
|
||||
|
||||
P.S. Кстати, в кодироке Unicode существует специальный символ "троеточие": `…` (HTML: `…`), который можно использовать вместо трёх точек. Если его использовать, то можно отрезать только один символ.
|
17
1-js/4-data-structures/1-string/3-truncate/task.md
Normal file
17
1-js/4-data-structures/1-string/3-truncate/task.md
Normal file
|
@ -0,0 +1,17 @@
|
|||
# Усечение строки
|
||||
|
||||
[importance 5]
|
||||
|
||||
Создайте функцию `truncate(str, maxlength)`, которая проверяет длину строки `str`, и если она превосходит `maxlength` -- заменяет конец `str` на `"..."`, так чтобы ее длина стала равна `maxlength`.
|
||||
|
||||
Результатом функции должна быть (при необходимости) усечённая строка.
|
||||
|
||||
Например:
|
||||
|
||||
```js
|
||||
truncate("Вот, что мне хотелось бы сказать на эту тему:", 20) = "Вот, что мне хотело..."
|
||||
|
||||
truncate("Всем привет!", 20) = "Всем привет!"
|
||||
```
|
||||
|
||||
Эта функция имеет применение в жизни. Она используется, чтобы усекать слишком длинные темы сообщений.
|
Loading…
Add table
Add a link
Reference in a new issue