Answer

Answer

t.me/js_test

Ответ:

i know how it works

Более оптимизированный вариант кода:

const betterResult = inputStr
  .split('')
  .map((char, index) => {
      if (needRemove.includes(index)) return;
      if (needAfterSpace.includes(index)) return `${char} `;
      return char;
  })
  .join('')

console.log(betterResult)

Объяснение:

Чтобы исключить повторное прохождение по всему массиву, можно совместить операции по удалению элементов с операциями по добавлению пробелов внутри одного метода map.

Также нет необходимости в использовании метода filter, так как метод map не добавляет в результаты элемент, для которых был возвращен результат равный undefined.

Код для проверки:

const inputStr = 'idontknowhowitworks';
const needAfterSpace = [0, 4, 8, 11, 13]
const needRemove = [1,2,3,4]

const result = inputStr
  .split('')
  .map((char, index) => needAfterSpace.includes(index) ? `${char} ` : char)
  .map((char, index) => needRemove.includes(index) ? undefined : char)
  .filter(value => value)
  .join('')

console.log(result)


Report Page