Задать вопрос
leni_m
@leni_m
ЧупаКобрус

Как вставить пробелы в строку?

Есть строка из 11-ти символов, в качестве символа обозначу "0". Получаем "00000000000".
Подскажите, как вставить в эту строку пробелы, чтобы получилось "0 00 000 00 00 0"?
  • Вопрос задан
  • 90 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
const insert = (str, indices, substr = ' ') =>
  Array.prototype.reduce.call(
    str,
    (acc, n, i) => acc + (indices.includes(i) ? substr : '') + n,
    ''
  );

// или

const insert = (str, indices, substr = ' ') => [...indices]
  .sort((a, b) => b - a)
  .reduce((acc, n) => (acc.splice(n, 0, substr), acc), [...str])
  .join('');

// или

const insert = (str, indices, substr = ' ') => []
  .concat(0, indices)
  .sort((a, b) => a - b)
  .map((n, i, a) => str.slice(n, a[i + 1]))
  .join(substr);

// или

const insert = (str, indices, substr = ' ') => indices.length
  ? str.replace(RegExp(indices.map((n, i) => `(?<=^.{${n}})`).join('|'), 'g'), substr)
  : str;

Пользоваться этим, понятное дело, так: str = insert(str, [ 1, 3, 6, 8, 10 ]);.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы