Javascript 如何删除eval()?

Javascript 如何删除eval()?,javascript,eval,Javascript,Eval,如何删除下面代码中的eval: var c = 4; // c can change parseFloat(eval('document.formName.fieldName1' + (c + 1) + '.value * document.formName.fieldName2[' + c + '].value')); 我尝试过对象、数组、全局窗口变量,但与document.formName选择器结合使用时,任何东西都不起作用 更新:标记为重复的答案不适用于我的问题,因为我的代码根据doc

如何删除下面代码中的eval:

var c = 4; // c can change

parseFloat(eval('document.formName.fieldName1' + (c + 1) + '.value * document.formName.fieldName2[' + c + '].value'));
我尝试过对象、数组、全局窗口变量,但与
document.formName
选择器结合使用时,任何东西都不起作用

更新:标记为重复的答案不适用于我的问题,因为我的代码根据
document.form.field.value
选择器读取表单值。这个解决方案不起作用。我也尝试过对象、数组等功能。

给你:

parseFloat(document.formName["fieldName1" + (c + 1) ].value * document.formName.fieldName2[c].value);

您可以将其中写入的内容写成JS,而不是字符串。您拥有的是一个用变量求和的字符串,因此如果您希望执行该字符串,则需要eval。但是你真的不需要把它作为一个字符串。谢谢你,这是一个旧代码,我已经尝试了所有可用的解决方案。它现在按照下面的答案工作。@Ciprian:标记的副本是正确的。它解释了使用动态名称访问对象属性的概念。它可能是,但对我的代码段不起作用。它怎么不起作用?这是同样的概念。这很有效,非常感谢。我不知道为什么它在字段名前没有点
,但它确实可以。@Ciprian JS中有点访问器语法和括号访问器语法。你生活,你学习。我将用谷歌搜索访问器语法。谢谢