JavaScript:将字符串作为参数转换为数组名?

JavaScript:将字符串作为参数转换为数组名?,javascript,Javascript,是否可以将函数参数字符串转换为数组名称 function SwitchElement(type){ var cur = type.indexOf(document.getElementById(type).src); console.log(cur); if(cur < eyes.length-1){ } } 功能开关元件(类型){ var cur=type.indexOf(document.getElementById(type.src)); 控制台

是否可以将函数参数字符串转换为数组名称

function SwitchElement(type){

    var cur = type.indexOf(document.getElementById(type).src);
    console.log(cur);
    if(cur < eyes.length-1){

    }
}
功能开关元件(类型){
var cur=type.indexOf(document.getElementById(type.src));
控制台日志(cur);
if(电流<眼睛长度-1){
}
}
因此,“类型”被称为数组名

如果是,怎么做?我试着像那个函数那样做,但它返回给我索引-1


注意:元素的Div和Arrayname共享相同的名称

假设传入字符串,最好的处理方法是将数组排列到对象中。因此,不是:

var skins = [];
var eyes = [];
// etc...
您将得到类似于:

parts = {
    skins: [],
    eyes: [],
    // etc
};
function SwitchElement(type){

    var cur = parts[type].indexOf(document.getElementById(type).src);
    console.log(cur);
    if(cur < parts[type].length-1){

    }
}
现在,您可以在函数中执行以下操作:

parts = {
    skins: [],
    eyes: [],
    // etc
};
function SwitchElement(type){

    var cur = parts[type].indexOf(document.getElementById(type).src);
    console.log(cur);
    if(cur < parts[type].length-1){

    }
}
功能开关元件(类型){
var cur=parts[type].indexOf(document.getElementById(type).src);
控制台日志(cur);
if(电流<零件[类型].长度-1){
}
}

你说的“数组名”是什么意思?我有几个数组。例如:眼睛、衣服、头发。我想将“type”变量指定为这3个变量中的一个。您应该传入它。将数组传递给
getElementById
没有意义。我想应该是
parts[type]。indexOf(…)
@FelixKling:Yep。所以如果不将数组排列成对象,就不可能轻松地将字符串转换成已经存在的数组名?我有7个数组,它们共享同一个函数,但访问不同的数组。如果我能通过指定在参数中使用哪个数组来重用该函数,我会很高兴的。@Arletiss:你可以,把它们放在一个对象中。作为奖励,您没有7个数组污染全局名称空间,而是只有一个对象。从技术上讲,您可以使用
eval
,但不能。“这是一个糟糕的做法。@MattBurland我昨晚在stackoverflow上找到了另一个答案,它建议只写:这个[arrayname/Parameter],它作为我想要的数组的引用(基本上是我想要完成的),而不是使用eval