This commit is contained in:
Ilya Kantor 2014-11-16 01:40:20 +03:00
parent 962caebbb7
commit 87bf53d076
1825 changed files with 94929 additions and 0 deletions

View file

@ -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('');
}

View file

@ -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");
});
});
});

View file

@ -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
```

View 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`.