动态数组名称的javascript [英] dynamic array names javascript

查看:110
本文介绍了动态数组名称的javascript的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有像名字有几个阵列。

  ArrayTop []
ArrayLeft []
ArrayRight []
ArrayWidth []

我想在一个函数动态设置的名称,然后设置值。

我已经试过的动态选择合适的阵列很多方法,但还没有拿出一个解决方案。

 函数setarray(A,B,C){
    的eval(阵列+ A + [B])= C
}setarray('顶',5100)

在这个例子中我试图设置。

  ArrayTop [5] = 100


解决方案

如果您在浏览器中这样做,一个可能的解决办法是要做到:

 函数setArray(A,B,C){
    窗口['阵列'+ A] [B] = C;
}setArray('顶部',5,100);

我会建议你所有的阵列包含在某个对象,不污染全局命名空间。因此,它会更喜欢:

  VAR阵列= {
    ArrayTop:[],
    ArrayNorth:[]
};函数setArray(A,B,C){
    阵列['阵列'+ A] [B] = C;
}setArray('顶部',5,100);

我不建议使用eval。 EVAL并不意味着这种动态的评价,这是一个巨大的性能损失。

I have a few arrays with like names.

ArrayTop[]  
ArrayLeft[]   
ArrayRight[]  
ArrayWidth[]

I am trying to set the name dynamically in a function and then set value.

I have tried many ways of dynamically picking the right array but have not come up with a solution.

function setarray(a,b,c){
    eval(Array+a+[b])=c
}

setarray('Top',5,100)

In this example i am trying to set.

ArrayTop[5]=100

解决方案

If you are doing this in the browser, one possible solution would be to do:

function setArray(a, b, c){
    window['Array' + a][b] = c;
}

setArray('Top', 5, 100);

I would recommend that all your array's be contained in some object and not pollute the global namespace. So it would be more like:

var arrays = {
    ArrayTop: [],
    ArrayNorth: []
};

function setArray(a, b, c){
    arrays['Array' + a][b] = c;
}

setArray('Top', 5, 100);

I would not recommend using eval. Eval is not meant for this kind of dynamic evaluation and it is a huge performance hit.

这篇关于动态数组名称的javascript的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆