#javascript
Привет всем,
Суть задачи: написать функцию которая принимает в параметры строку, и возвращает
её, где всё элементы с четными индексами переведены в верхний регистр.
Например:
toWeirdCase( "Weird string case" );//=> returns "WeIrD StRiNg CaSe"
function toWeirdCase(s){
var str = s.toLowerCase().split(' '); // Переводим строку в нижний регистр, и
разбиваем на массив.
for(var i = 0; i < str.length; i++){ // проходимся циклом по этим массивам
var s = str[i].split('').forEach(function (item, j/*индекс текущего элемента*/)
{ // разбиваем уже сложенные элементы на массивы, и попутно делаем проверку на четность
индекса
if (j % 2 === 0){
item.toUpperCase(); // переводим элемент с четным индексом в верхний
регистр
//console.log(item.toUpperCase()); // так выводит всё четные элемент
в верхнем регистре.
}
});
console.log(s);
}
}
console.log(toWeirdCase("Weird string case"));
Вот не могу понять как теперь, собрать обратно всё в одну сроку.
Кто может ткните носом меня, в сторону правильного решения :)
Ответы
Ответ 1
Вот решение вопроса без прохождения по двум циклам. В функции split если задать параметр пустую строку то он разрезает строку по символам, вот проходим по нему каждый четный символ переводим в верхний регистр, но не считаем прабелы.Ответ 2
function toWeirdCase(s) { var str = s.toLowerCase().split(' '); var result = ''; for (var i = 0; i < str.length; i++) { for (var j = 0; j < str[i].length; j++) { if (j % 2 === 0) { result += str[i][j].toUpperCase(); } else { result += str[i][j]; } } result += ' '; } return result; } console.log(toWeirdCase("Weird string case"));Ответ 3
зачем так громоздить? вот вариант на регулярках. правда немного растянуто, но что бы понятно было спец. так сделал. function replacer(str, $1, $2, offset, s) { return $2.replace(/(.)(.)/gi, uper) + ' '; // ищем четное и нечетное и кидаем в uper } function uper (str, $1, $2, offset, s) { return $1.toUpperCase()+$2; // берем первый символ делаем, большим плюсуем второй } const str = 'Lorem ipsum dolor sit amet'; console.log(str.replace(/(^|\s*)(\w*)(^|\s*)/g, replacer)) // ищем слова и кидаем найденое в функцию replacer
Комментариев нет:
Отправить комментарий