update
This commit is contained in:
parent
962caebbb7
commit
87bf53d076
1825 changed files with 94929 additions and 0 deletions
|
@ -0,0 +1,10 @@
|
|||
function camelize(str) {
|
||||
var arr = str.split('-');
|
||||
|
||||
for(var i=1; i<arr.length; i++) {
|
||||
// преобразовать: первый символ с большой буквы
|
||||
arr[i] = arr[i].charAt(0).toUpperCase() + arr[i].slice(1);
|
||||
}
|
||||
|
||||
return arr.join('');
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
describe("camelize", function() {
|
||||
|
||||
it("оставляет пустую строку \"как есть\"", function() {
|
||||
assert.equal( camelize(""), "");
|
||||
});
|
||||
|
||||
describe("делает заглавным первый символ после дефиса", function() {
|
||||
|
||||
it("превращает background-color в backgroundColor", function() {
|
||||
assert.equal( camelize("background-color"), "backgroundColor");
|
||||
});
|
||||
|
||||
it("превращает list-style-image в listStyleImage", function() {
|
||||
assert.equal( camelize("list-style-image"), "listStyleImage");
|
||||
});
|
||||
|
||||
it("превращает -webkit-transition в WebkitTransition", function() {
|
||||
assert.equal( camelize("-webkit-transition"), "WebkitTransition");
|
||||
});
|
||||
});
|
||||
|
||||
});
|
|
@ -0,0 +1,26 @@
|
|||
# Идея
|
||||
|
||||
Задача может быть решена несколькими способами. Один из них -- разбить строку по дефису `str.split('-')`, затем последовательно сконструировать новую.
|
||||
|
||||
# Решение
|
||||
|
||||
Разобьем строку в массив, а затем преобразуем его элементы и сольём обратно:
|
||||
|
||||
```js
|
||||
//+ run
|
||||
function camelize(str) {
|
||||
var arr = str.split('-');
|
||||
|
||||
for(var i=1; i<arr.length; i++) {
|
||||
// преобразовать: первый символ с большой буквы
|
||||
arr[i] = arr[i].charAt(0).toUpperCase() + arr[i].slice(1);
|
||||
}
|
||||
|
||||
return arr.join('');
|
||||
}
|
||||
|
||||
alert( camelize("background-color")); // backgroundColor
|
||||
alert( camelize("list-style-image") ); // listStyleImage
|
||||
alert( camelize("-webkit-transition") ); // WebkitTransition
|
||||
```
|
||||
|
20
1-js/4-data-structures/7-array-methods/2-camelcase/task.md
Normal file
20
1-js/4-data-structures/7-array-methods/2-camelcase/task.md
Normal file
|
@ -0,0 +1,20 @@
|
|||
# Перевести текст вида border-left-width в borderLeftWidth
|
||||
|
||||
[importance 3]
|
||||
|
||||
Напишите функцию `camelize(str)`, которая преобразует строки вида "my-short-string" в "myShortString".
|
||||
|
||||
То есть, дефисы удаляются, а все слова после них получают заглавную букву.
|
||||
|
||||
Например:
|
||||
|
||||
```js
|
||||
camelize("background-color") == 'backgroundColor';
|
||||
camelize("list-style-image") == 'listStyleImage';
|
||||
camelize("-webkit-transition") == 'WebkitTransition';
|
||||
```
|
||||
|
||||
Такая функция полезна при работе с CSS.
|
||||
|
||||
P.S. Вам пригодятся методы строк `charAt`, `split` и `toUpperCase`.
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue