Javascript,将字符串添加到数组[string]

时间:2013-02-06 12:49:20

标签: javascript

我有两个变量:

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,我会得到正确的输出)。我尝试将=替换为+=,但没有帮助(sampm2mp都是undefined

我找不到“模拟”这个的任何解决方案:

cost["string"] = string;

2 个答案:

答案 0 :(得分: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();

或者,您可以在“对象文字”中声明变量并在一行中为其赋值:

var cost    = {'m2mp':'0.05', 'samp': '0.04'}
var maxslot = {'m2mp':'1000', 'samp': '500'}

答案 1 :(得分:0)

在您的第二个代码段中,您创建了对象(花括号),而不是数组。您是否尝试将键值对添加到您的变量中?

您只需设置所需的属性:

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] }