Я пытаюсь заменить определенный символ в индексе массива.

1

Я пытаюсь заменить первый "0" в индексе 0 массива, который я сделал, называемый "битами".

bits = ['01010'];

console.log(bits[0].charAt(1));

bits[0].charAt(0) = '9'; // <-Not working

console.log(bits[0].charAt(0));

Что бы я заменил третью строку кода выше, чтобы это сделать?

Окончательный журнал консоли должен возвращать "9",

(Ссылка JSBIN)

Также str.replaceAt не работает

  • 0
    Почему? Почему не вложенный массив или число?
  • 1
    Возможный дубликат Как заменить символ в определенном индексе в JavaScript?
Показать ещё 3 комментария
Теги:
arrays

3 ответа

1
Лучший ответ
var bits = ['01010'];
console.log(bits); //["01010"]
bits[0] = bits[0].replace('0','9');
console.log(bits); //["91010"]
  • 4
    Это не гарантирует замены 0-го индекса, если строка bits имеет другое значение.
4
 bits[0] = "9" + bits[0].substr(1);

В качестве альтернативы вы можете написать функцию замены:

function replace(str, replace, start, end){
  return str.substr(0, start) + replace + str.substr(end || start + replace.length);
}

bits[0] = replace(bits[0], "9", 0);
2

сделайте копию строки для замены любого символа. также необходимо определить пользовательскую функцию "setCharAt"

function setCharAt(str,index,chr) {
    if(index > str.length-1) return str;
    return str.substr(0,index) + chr + str.substr(index+1);
}

после объявления функций выполнить ниже заданный код для замены символа с индексом "0"

bits[0]=setCharAt(bits[0],0,9)

после выполнения этой окончательной консоли.log вернет "9",

Ещё вопросы

Сообщество Overcoder
Наверх
Меню