2010-07-26 1 views
1

Извините, это, вероятно, повторяющийся вопрос, но как я могу перебирать список в Javascript внутри другого объекта, не используя eval()?Итерация над объектом json без использования eval?

См псевдокода в БУКВАХ ниже:

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

Очевидно, что я не хочу реальный для цикла внутри объекта CM.Polygon (а CloudMade отображения объект), что я хочу, это просто выход каждого LatLng в списке по очереди.

Спасибо!

ответ

1

Почему вы не хотите использовать реальный цикл? Мое предложение было бы использовать функцию самоисполнения, например:

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; 
    }()) 
); 
+1

Мне это нравится! Даже не знал, что ты можешь это сделать! * обрывает его собственное решение * ha – Parris

+0

Да, это потрясающая функция функционального масштаба. – Rixius

+0

Я знаком с синтаксисом 'for (;;) {}' в JS, но не 'for (,,,) {}'. Это опечатка? – 2010-07-26 19:22:08