gpt4 book ai didi

Javascript eval 多个变量不起作用

转载 作者:行者123 更新时间:2023-12-02 20:44:17 24 4
gpt4 key购买 nike

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

变量的名称是变量,来自数组。所以我使用 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com