javascript的例子不是邪恶的吗?

时间:2014-04-15 17:13:28

标签: javascript node.js eval

我每天阅读一些stackOverflow问题和答案超过十次,并且...它看起来是我第一次感觉它发布的东西,因为我没有找到准确的答案答案。

我在nodeJS中编写了一些代码。它的网络界面适用于基于自定义星号的大型软交换,在一个地方我需要从网站发布消息中获取数据。

问题是,该帖子信息包含以时尚命名的众多信息:

  

等方

     

对等体2

     

对等体3

     

peer4等

而不是处理每一个,我做了一个循环:

 var array = [];
 var i = 0;
        while (typeof eval("req.body.peer" + i) !== 'undefined' &&  eval("req.body.peer" + i) !== '') {
        console.log('petla wisielca');
        //console.log(eval("req.body.peer" + i));
        array.push(eval('req.body.peer' + i));
        i++;
        }

数字填充输入(实际上是html选择)是可变的。

在创建该数组之后,我在传统的非eval循环中处理其余的事情(将对等文件写入文件等)。

我在这里遗漏了什么,还是处理这种情况的正确方法?

提前致谢!

修改

看起来我有一些大脑故障:)。

解决方案非常简单,

kyle清除它,访问对象变量并例如迭代时,只需要使用[]。

解决方案:

var array = []
var i = 0
while (req.body['peer' + i]) {
  array.push(req.body['peer' + i])
  i++
}

再次感谢凯尔。

2 个答案:

答案 0 :(得分:1)

可以像访问关联数组一样访问JavaScript对象:

var array = []
var i = 0
while (req.body['peer' + i]) {
  array.push(req.body['peer' + i])
  i++
}

答案 1 :(得分:1)

使用eval是不可避免的,我编写了一个插件,可以动态调用函数,你可以检查如何在不使用eval的情况下访问对象:

https://github.com/HaSuKrOnOs/jquery-dynFn