Задача: задается строка, необходимо вернуть массив состоящий из пар символов, если у последней пары не хватает символа добавить вместо него "_"
Пример: "abcde" => [ab, cd, e_]
function solution(str){
var arrLetters=[];
var result = [];
arrLetters = str.split("");
if (arrLetters.length % 2 != 0) arrLetters.push("_");
for (let s=0;s<arrLetters.length;s++) {result.splice( result.length,0,arrLetters[s]+arrLetters[s+1])};
for (let s=0;s<arrLetters.length;s++) {result.splice(s+1,s)};
return (result);//(1) смотреть ниже
}
console.log(solution("abcde"), "ab", "cd", "e_");
Вринципе код рабочий, но я бы хотел улучшить его. Если можно с подробным описанием ваших решений. Пытался найти метод которым можно записать в массив сразу 2 символа без лишних манипуляций строка (1)
function solution(str) {
return str.split('')
.map((c, i, ar) => c + (ar[i + 1] ? ar[i + 1] : '_')) // объединяем каждый символ со следующим
.filter((c, i) => 1 - i % 2); // убираем четные пары
}
console.log(solution("abcde"), "ab", "cd", "e_");
const solution = (str) => {
return str.match(/..?/g).map(x => {return x.length % 2 === 0 ? x : x + '_'});
}
console.log(solution('abcde'), 'ab', 'cd', 'e_');
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости