0

私には2つの変数があります:

var cost = new Array();
var maxslot = new Array();

そして私はこのように値を設定します:

<script>
cost = {"m2mp":"0.05"};
maxslot = {"m2mp":"1000"};
</script>
<script>
cost = {"samp":"0.04"};
maxslot = {"samp":"500"};
</script>

しかし、samp置き換えm2mpて、呼び出すalert(cost["m2mp"])と出力されますundefined(割り当てない場合はsamp、正しい出力が得られます)。に置き換え=てみまし+=たが、役に立ちませんでした(両方ともsampそうです)。m2mpundefined

これを「シミュレート」するための解決策が見つかりませんでした。

cost["string"] = string;
4

2 に答える 2

0

2番目のスニペットでは、配列ではなくオブジェクト(中括弧)を作成しています。キーと値のペアを変数に追加しようとしていますか?

必要なプロパティを設定するだけです。

var cost, maxslot;
// ...
cost = {"m2mp":"0.05"};
maxslot = {"m2mp":"1000"};

cost["samp"] = "0.04";
maxslot["samp"] = "500";

JavaScriptでは、中括弧を使用して新しいオブジェクトを作成します。

var obj = {};
obj.constructor; // function Object() { [native code] }

補足:配列を作成するときは、[]表記が優先されます。new Array()

var arr = [];
arr.constructor; // function Array() { [native code] }
于 2013-02-06T13:05:58.030 に答える
0

これを行うだけです:

<script>
    cost["m2mp"] = "0.05";
    maxslot["m2mp"] = "1000";
    cost["samp"] = "0.04";
    maxslot["samp"] = "500";
</script>

ただし、変数を希望する方法では、変数はObjectsではなくになりますArrays。したがって、次のように置き換える必要があります。

var cost = new Array();
var maxslot = new Array();

と:

var cost = new Object();
var maxslot = new Object();

または、「オブジェクト リテラル」の 1 行で、変数を宣言して値を代入することもできます。

var cost    = {'m2mp':'0.05', 'samp': '0.04'}
var maxslot = {'m2mp':'1000', 'samp': '500'}
于 2013-02-06T12:55:09.650 に答える