繁体   English   中英

将String转换为JavaScript中已声明的对象?

[英]Convert String to already declared object in JavaScript?

我有以下代码:

//Arguments are unique.

var Object1 = new Object(argument,argument,argument);

var Object2 = new Object(argument,argument,argument);

var Object3 = new Object(argument,argument,argument);

//...
var Object100 new Object(argument,argument,argument);


function convert(){
     var array = ["Object1","Object56"];
     // Manipulate values in array above as if they were the objects already
     //declared above this function, like acessing "Object56.argument" property.

}

我需要将数组中的字符串转换为已声明的对象,以便在函数中操作对象属性(从参数转换而来)。 我意识到我基本上是将JS对象转换为数据库,这可能不是一个好主意,但我想知道是否有解决方案? 他们选择数组中值的方式相当复杂,我认为这会减损问题,但它们或多或少是随机生成的。

不要将每个对象存储为单独的变量,而要创建一个映射:

var objectMap = {
    Object1: new Object(argument, argument, argument),
    Object2: new Object(argument, argument, argument),
    // ...
    Object100: new Object(argument, argument, argument)
};

这样映射就足够容易了。

您可以手动执行以下操作:

var array = ['Object1', 'Object2'];
var objects = [];
for(var i = 0; i < array.length; i++) {
   var key = array[i];
   objects.push(objectMap[key]);
}

或者(如果您支持ES5)使用map函数:

var array = ['Object1', 'Object2'];
var objects = array.map(function (key) {
   return objectMap[key];
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM