Javascript eval 多个变量不起作用

标签 javascript dynamic variables eval

我得到了一个数组,我对其进行迭代并尝试创建一个变量。

变量的名称是变量,来自数组。所以我使用 eval (此代码仅在我的本地计算机上使用)来创建变量。 奇怪的是,我可以创建一个变量并向其内容添加纯文本。但每当我尝试设置变量时,我什么也得不到。

我还使用 Prototype 轻松遍历 DOM。

var arr_entries = some_DOM_element;

arr_entries_array = new Array();
arr_entries_array[0] = new Array();
arr_entries_array[0][0] = 'name_dd';
arr_entries_array[0][1] = arr_entries.next(13).down().next(1).innerHTML;

arr_entries_array[1] = new Array();
arr_entries_array[1][0] = 'name_pl';
arr_entries_array[1][1] = arr_entries.next(14).down().next().innerHTML;

arr_entries_array[2] = new Array();
arr_entries_array[2][0] = 'name_pm';
arr_entries_array[2][1] = arr_entries.next(15).down().next().innerHTML;

arr_entries_array[3] = new Array();
arr_entries_array[3][0] = 'name_hd';
arr_entries_array[3][1] = arr_entries.next(17).down().next().innerHTML;

arr_entries_array[4] = new Array();
arr_entries_array[4][0] = 'name_sr';
arr_entries_array[4][1] = arr_entries.next(16).down().next().innerHTML;

for(e = 0; e < arr_entries_array.length; e++)
{
    eval('var arr_entry_' + arr_entries_array[e][0] + ';');

    eval('arr_entry_' + arr_entries_array[e][0] + ' = \'' + arr_entries_array[e][1] + '\';');
}

我可以提醒(arr_entries_array[e][1]) 就好了。我还可以用纯文本替换它,然后提醒变量,它就会起作用。

第二个 eval 行是哪里出错了,有什么意见吗?

最佳答案

为什么不直接在对象上设置属性?

如果您发现自己在代码中编写了代码,然后使用 eval() 执行它,那么您几乎肯定会做错事情。它速度慢、难以阅读,并且会引入安全漏洞。

JavaScript 对象可以具有您想要的任何属性。为什么不只是 v = new Object(); v['name_dd'] = 随便...;,或者类似的东西?

关于Javascript eval 多个变量不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1692897/

相关文章:

javascript - Js Promise.all 没有正确返回

android - 如何在运行时更改 android 应用程序名称和图标?

javascript - jquery 在动态元素上调用 datepicker

javascript - JavaScript闭包如何工作?

javascript - ajax 不执行或接收外部脚本

javascript - 在 Shiny 中使用自适应分辨率进行缩放/平移

javascript - 修改_.reject里面原来的数组

dictionary - 映射动态值类型?

python - 检查所有变量之一是否为空

function - 您如何编写测试来测试具有可变返回值的函数?