javascript - 不使用 eval 迭代 json 对象?

标签 javascript eval

抱歉,这可能是一个重复的问题,但是如何在不使用 eval() 的情况下迭代另一个对象内的 Javascript 列表?

请参阅下面大写字母的伪代码:

polygon = polygon['coordinates']; //list object
var polygon = new CM.Polygon([
   FOR POLY IN POLYGON {
       new CM.LatLng(poly[1], poly[0]),
}
]);

显然,我不想在 CM.Polygon 对象(CloudMade map 对象)内部有一个真正的 for 循环,我想要的只是依次输出列表中的每个 LatLng。

谢谢!

最佳答案

为什么不想使用真正的 for 循环?我的建议是使用自动执行函数,例如:

polygon = polygon['coordinates']; //list object
var polygon = new CM.Polygon(
  (function(){
    var oput = [], x, y;
    for ( x=0,y=polygon.length ; x<y ; x++){
      oput.push(new CM.LatLng(polygon[x][1],polygon[x][0]));
    }
    return oput;
  }())
);

关于javascript - 不使用 eval 迭代 json 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3337439/

相关文章:

javascript - 重置 React JS 的状态

javascript - 路径。如何选择所有文本节点但只选择 'option'元素中的 'select'

javascript - 在 Node 中,如何要求函数仅在获取所需的所有数据后才返回?

javascript - 在对象构造函数中,如何附加具有自定义键值的属性?

r - ggplots 存储在绘图列表中,以在 for 循环内生成绘图时尊重变量值

javascript - 更改 WebRTC 流中的播放延迟

php - 如何在php中动态设置数组键

perl - 为什么 Perl 的 eval 不能从 Test::Cmd::Common->unlink 中捕获问题?

node.js - 在 Node 服务器中使用 eval 是一个坏主意吗?

variables - 我可以在.dir-locals.el中放入任意的elisp代码吗?