#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
Комментариев нет:
Отправить комментарий