Создать массив из строки и вернуть новый массив

137
31 марта 2019, 12:40

Задача: задается строка, необходимо вернуть массив состоящий из пар символов, если у последней пары не хватает символа добавить вместо него "_" Пример: "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)

Answer 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_");

Answer 2

const solution = (str) => { 
  return str.match(/..?/g).map(x => {return x.length % 2 === 0 ? x : x + '_'}); 
} 
console.log(solution('abcde'), 'ab', 'cd', 'e_');

READ ALSO
telegraf.js ошибка при запуске бота

telegraf.js ошибка при запуске бота

При запуске самого обычного бота из туториалов

194
Как сделать вывод сообщений об ошибках сборки webpack на сайте

Как сделать вывод сообщений об ошибках сборки webpack на сайте

Сейчас у меня стоит watch, и webpack делает пересборку, после каждого изменения файлаНо когда я допускаю синтаксические ошибки в js, то в консоли...

152
Экспортирование функции в Typescript. This as any

Экспортирование функции в Typescript. This as any

Использую Typescript Strict ModeНеобходимо реализовать что-то похожее на это

154