Заменить символ в строке по индексу

436
09 октября 2017, 01:48

Имеется строка и индекс:

let str = 'abacaba'
let index = 2

Как можно изменить символ в строке по этому индексу?

Хочется что-нибудь вроде str.replaceAt(index, 'x'), где 'x' это новый символ.

Answer 1

Поскольку метода для замены символа по индексу нет, ну и сами строки так изменять невозможно, то мы прибегаем к разбивке строки на подстроки.

Что бы заменить символ мы создаем метод для строк. Заменяем нужный элемент путем разбивания строки на подстроки - берем первую часть строки (до указанного индекса) и берем часть строки после указанного индекса и до конца строки. Между ними вставляем нужный элемент.

Этот метод будет работать на всех строках вашего проекта.

String.prototype.replaceAt = function(index, replacement) { 
  return this.substr(0, index) + replacement + this.substr(index + replacement.length); 
} 
 
let str = 'abacaba'; 
let index = 2; 
console.log(str.replaceAt(index, "x")); // Выведет abxcaba

Источник

Answer 2

Вот так можно сделать. Разделяем строку на две части до и после символа, и прикрепляем обратно с символом в промежутке.

String.prototype.replaceAt=function(index, replacement) { 
    return this.substr(0, index) + replacement+ this.substr(index + replacement.length); 
} 
var hello="Hello World"; 
console.log(hello.replaceAt(2, "!!")); //should display He!!o World

READ ALSO
WP сортировкой записи - WordPress

WP сортировкой записи - WordPress

Скажите пожалуйста, в ВОРДПРЕССЕ есть записи И установил Simple Custom Post Order сортировку записи на свой проект инет визиткиНеобходимо было категории...

200
module.parent = null

module.parent = null

есть файл 'serverjs'

190
Требуется пояснение по регулярке JS

Требуется пояснение по регулярке JS

В общем у меня есть форма, я чищу строку по шаблонурегуляркой, как задать что бы если не "чистится" то подсвечивалось?

206
Angular после добавления элемента массива контроллера, вью не отрисовывается

Angular после добавления элемента массива контроллера, вью не отрисовывается

При добавлении нового объекта в массив, модель не отрисовываетсяДанные добавляются через модальное окно

231