我需要创建一个像这样的对象
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
中可用。如何实现呢?
答案 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 )