0

Chrome開発者ツールでこのコードを試しました:

var str = "1111111";
str[0] = 2;
2
console.log(str[0]);
1

ご覧のように、出力は 1 でしたが、私は 2 を期待していました。 2まで可変str

4

4 に答える 4

3

これは、JavaScript では文字列が不変オブジェクトであるためです。関数を使用する必要がありsubstrます:

String.prototype.replaceAt = function (index, char) {
  return this.substr(0, index) + char + this.substr(index + char.length);
};

var str = '11111';
console.log(str.replaceAt(0, '2'));
于 2012-08-29T11:03:06.657 に答える
0

これを試してみてください

str.replace(str.charAt(0), "2")
于 2012-08-29T11:05:00.030 に答える
0

最初に文字列を分割する必要があります。

次のようなものです:

str = str.split('');

その後、配列として扱うことができます。

于 2012-08-29T11:05:38.637 に答える
0

サイの本から:

JavaScript では、文字列は不変オブジェクトです。つまり、文字列内の文字は変更できず、文字列に対する操作は実際に新しい文字列を作成します。文字列は、値ではなく参照によって割り当てられます。一般に、オブジェクトが参照によって割り当てられる場合、1 つの参照によってオブジェクトに加えられた変更は、そのオブジェクトへの他のすべての参照を通じて表示されます。ただし、文字列は変更できないため、文字列オブジェクトへの参照を複数持つことができ、知らないうちに文字列値が変更される心配はありません。

于 2012-08-29T11:03:09.403 に答える