780 Stimmen

Wie kann ich ein Zeichen an einem bestimmten Index in JavaScript ersetzen?

Ich habe eine Zeichenkette, sagen wir mal Hello world und ich muss das Zeichen bei Index 3 ersetzen. Wie kann ich ein Zeichen durch Angabe eines Indexes ersetzen?

var str = "hello world";

Ich brauche etwas wie

str.replaceAt(0,"h");

6voto

Avi Cohen Punkte 2674
var str = "hello world";
console.log(str);
var arr = [...str];
arr[0] = "H";
str = arr.join("");
console.log(str);

5voto

Gyum Fox Punkte 2564

Die Verwendung des Verbreitungssyntax können Sie die Zeichenkette in ein Array umwandeln, das Zeichen an der angegebenen Position zuweisen und wieder in eine Zeichenkette umwandeln:

const str = "hello world";

function replaceAt(s, i, c) {
  const arr = [...s];  // Convert string to array
  arr[i] = c;          // Set char c at pos i
  return arr.join(''); // Back to string
}

// prints "hallo world"
console.log(replaceAt(str, 1, 'a'));

5voto

Ridwan Ajibola Punkte 521

Sie könnten versuchen

var strArr = str.split("");

strArr[0] = 'h';

str = strArr.join("");

Probieren Sie diese Funktion zum Drucken von Schritten aus

steps(3)
//       '#  '
//       '## '
//       '###'

function steps(n, i = 0, arr = Array(n).fill(' ').join('')) {
  if (i === n) {
    return;
  }

  str = arr.split('');
  str[i] = '#';
  str = str.join('');
  console.log(str);

  steps(n, (i = i + 1), str);
}

5voto

Madmadi Punkte 1818

Dies ist mit RegExp leicht zu erreichen!

const str = 'Hello RegEx!';
const index = 11;
const replaceWith = 'p';

//'Hello RegEx!'.replace(/^(.{11})(.)/, `$1p`);
str.replace(new RegExp(`^(.{${ index }})(.)`), `$1${ replaceWith }`);

//< "Hello RegExp"

5voto

Mehulkumar Punkte 736

Sie könnten versuchen

var strArr = str.split("");

strArr[0] = 'h';

str = strArr.join("");

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X