Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
删除javascript中变量的eval并获取备用代码_Javascript - Fatal编程技术网

删除javascript中变量的eval并获取备用代码

删除javascript中变量的eval并获取备用代码,javascript,Javascript,有来自其他人的代码,有一些eval用法如下: var obj1 = null; var obj2 = null; var obj3 = null; //... after many lines ... var idx=3; //get from UI, from user selection, etc. ** var curObj = eval('obj'+idx); // now curObj is one of obj1,obj2,obj3 //using curObj below

有来自其他人的代码,有一些
eval
用法如下:

var obj1 = null;
var obj2 = null;
var obj3 = null;

//... after many lines ...
var idx=3;  //get from UI, from user selection, etc.
** var curObj = eval('obj'+idx);  // now curObj is one of obj1,obj2,obj3

//using curObj below
问题:如何删除**行中的
eval
部分,并找到对
idx
值动态获取
obj1
obj2
obj3
进行最小修改的替换

更新1

已尝试按如下方式添加阵列:

var obj1 = null;
var obj2 = null;
var obj3 = null;
[+] var objArray = [obj1, obj2, obj3];
但是这样一来,
objArray
是一个常量数组,而不是参考数组,每当我跟踪
objArray
时,值都是
[null,null,null]
;我知道,如果我在任何时候更新
obj1-3
我也应该更新
objArray
,但这并不实际,因为代码中有太多的赋值


可以随时显示正确的
objArray
工作代码以动态获取
obj1-3

我会使用数组并将这些对象按相同顺序放置如果最初的程序员正在做这种事情,代码很可能充满了其他不良做法。如果它是你的选择,考虑改写代码的这一部分。拥有表格的多个变量<代码> SothTimeX >代码> > <代码>是一个使用数组的强有力的指示器。了解数组:。您不会显示您对
objX
所做的操作,但您只需将对这些变量的任何引用替换为
objArray[X]
,或者至少对对象本身进行变异(假设值将是对象),而不是为变量指定新值。