6
a=new String("Hello");

弦(

a[0]==="H" //true
a[0]="J"
a[0]==="J" //false
a[0]==="H" //true

これは、文字列を char の by.split("")と thenの配列としてしか使用できないということ.join("")ですか?


回答:はい、Javascript strings are readonly(別名不変) で、この質問への回答は次の場所にあります。

4

5 に答える 5

3

文字列は不変なので、そうです。a文字列を変更する場合は、再割り当てする必要があります。slicea = 'j'+a.slice(1)、またはreplace:を使用することもできますa = a.replace(/^h/i,'j')

この実験Stringのようなカスタムの可変オブジェクトを作成できます(特にメソッドを参照)。replaceCharAt

于 2012-09-21T09:53:39.693 に答える
3

そのとおりです。

もちろん、これを処理する関数を作成することもできます。

これのさまざまな例については、この SO 投稿を参照してください。

JavaScript で特定のインデックスの文字を置き換えるにはどうすればよいですか?

于 2012-09-21T09:51:13.113 に答える
1

文字列を配列や文字であるかのように操作できるようにする必要がある場合は、おそらくいくつかのプロトタイプを作成します。

String.prototype.splice = function(start,length,insert) {
    var a = this.slice(0, start);
    var b = this.slice(start+length, this.length);
    if (!insert) {insert = "";};
    return new String(a + insert + b);
};

String.prototype.push = function(insert) {
    var a = this
    return new String(a + insert);
};

String.prototype.pop = function() {
    return new String(this.slice(0,this.length-1));
};

String.prototype.concat = function() {
    if (arguments.length > 0) {
        var string = "";
        for (var i=0; i < arguments.length; i++) {
            string += arguments[i];
        };
        return new String(this + string);
    };
};

String.prototype.sort = function(funct) {
    var arr = [];
    var string = "";
    for (var i=0; i < this.length; i++) {
        arr.push(this[i]);
    };
    arr.sort(funct);
    for (var i=0; i < arr.length; i++) {
        string += arr[i];
    };
    return new String(string);
};

var a = new String("hello");
var b = a.splice(1,1,"b");
var c = a.pop();
var d = a.concat(b,c);
var e = a.sort();

hello、hbllo、hell、hellohbllohell、ehllo を返します

于 2012-09-21T10:08:26.923 に答える
0

Strings プロトタイプの .valueOf() メソッドはプリミティブ値を返さないのでしょうか? お気に入り、

ここに画像の説明を入力

于 2012-09-21T10:15:51.880 に答える
0

基本的に、JavaScript の文字列は、プリミティブ型とオブジェクト型の 2 つの型によって区別されます。String オブジェクトは文字シーケンスです。

string のプリミティブ型を使用できます。

   var x = "hello";

   console.log(x);

     output : "hello"
    x = "j"+x.substring(1);
    console.log(x);
    output : "jello";

または使用

  var x = new String("hello");
  console.log(x.toString());
  x = "j"+x.substring(1);
于 2012-09-21T10:17:12.163 に答える