我每天阅读一些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++
}
再次感谢凯尔。
答案 0 :(得分:1)
可以像访问关联数组一样访问JavaScript对象:
var array = []
var i = 0
while (req.body['peer' + i]) {
array.push(req.body['peer' + i])
i++
}
答案 1 :(得分:1)
使用eval是不可避免的,我编写了一个插件,可以动态调用函数,你可以检查如何在不使用eval的情况下访问对象: