8
var myjson = '{"name": "cluster","children": [';

for (var i = 0; i < unique.length; i++)
{
    var uniquepart = '{"' + unique[i] + '"';
    myjson.concat(uniquepart); 
    var sizepart = ', "size:"';
    myjson.concat(sizepart);
    var countpart = count[i] + '';
    myjson.concat(countpart);
    if (i == unique.length) {
        myjson.concat(" },");
    }
    else {
        myjson.concat(" }");
    }
} 

var ending = "]}";
myjson.concat(ending);

console.log(myjson);

この文字列が正しく連結されず、元の値になってしまう理由を誰かが知っていますか?

4

4 に答える 4

14

このconcat()メソッドは、2つ以上の文字列を結合するために使用されます。

定義と使用法
このメソッドは既存の文字列を変更しませんが、結合された文字列のテキストを含む新しい文字列を返します。
参照:http ://www.w3schools.com/jsref/jsref_concat_string.asp

例えば:

myjson = myjson.concat(uniquepart); 

また

myjson += uniquepart; 
于 2013-02-27T20:13:20.113 に答える
9

javascript文字列は不変であるためconcat、最初の値を変更することはできず、新しい値のみを返すことができます。変数として持っている文字列に追加したい場合は、単に使用してください

myjson += "some addition";
于 2013-02-27T20:12:02.003 に答える
1

文字列は不変です。

.concat()無視する新しい文字列を返します。

于 2013-02-27T20:11:18.303 に答える
1

string.concat()元の文字列を変更せず、代わりに新しい文字列を返します。

それを変更するには、以下を実行する必要があります。

string = string.concat('fragment');
于 2013-02-27T20:11:34.437 に答える