使用for循环创建JavaScript JSON对象

时间:2018-07-21 16:53:44

标签: javascript json

我需要创建一个像这样的对象

var flightPlanCoordinates = [
   {lat: 37.772, lng: -122.214},
   {lat: 21.291, lng: -157.821},
   {lat: -18.142, lng: 178.431},
   {lat: -27.467, lng: 153.027}
];

我的尝试是

    for (i = 0; i < sales_person_route.length; i++) {
        var flightPlanCoordinates = [
        {lat: sales_person_route[i].latitude, lng: sales_person_route[i].longitude},
];

}

但这是错误的语法。但是我需要像flightPlanCoordinates这样的对象。我的经纬度值在sales_person_route中可用。如何实现呢?

4 个答案:

答案 0 :(得分:2)

Array对象具有强大的功能map,其目的就是为了实现这一目的:

var sales_person_route = [
   {latitude: 37.772, longitude: -122.214},
   {latitude: 21.291, longitude: -157.821},
   {latitude: -18.142, longitude: 178.431},
   {latitude: -27.467, longitude: 153.027}
];
var flightPlanCoordinates = sales_person_route.map(r => { 
  return { 
    lat: r.latitude, 
    lng: r.longitude 
  }; 
});
console.log(flightPlanCoordinates);

Map遍历原始数组中的每个元素,并对元素执行指定的功能,并将结果返回到新数组中。

答案 1 :(得分:1)

您应该在for语句之前定义一个数组:

var flightPlanCoordinates = [];

,然后为循环中的每个项目推相应的对象。

 for (i = 0; i < sales_person_route.length; i++) { 
    var salesPersonRoute = sales_person_route[i];
    flightPlanCoordinates.push({ lat: salesPersonRoute.latitude
                               , lng: salesPersonRoute.longitude
    });
}

或者您可以尝试以下操作:

var flightPlanCoordinates = sales_person_route.map(item => {
    return {
        lat: item.latitude, 
        lng: item.longitude
    }
});

答案 2 :(得分:1)

java.lang.ClassNotFoundException

答案 3 :(得分:1)

    var flightPlanCoordinates = [];
    var sales_person_route = [{'latitude':'123', 'longitude':'234'}, {'latitude':'123', 'longitude':'234'}];

    for(var i = 0; i < sales_person_route.length; i++) {

        flightPlanCoordinates.push({

            'lat': sales_person_route[i].latitude,
            'lng': sales_person_route[i].longitude,
        });
    }

console.log(flightPlanCoordinates )