将 space 分隔的坐标字符串转换为 JavaScript 对象数组
Convert space separated string of coordinates into JavaScript object array
这个space分隔的字符串:
const polygon = "42.44492,75.637764 42.445503,75.64534 42.433681,75.6604"
..应转换为包含对象的数组:
const polygon = [
{ lat: 42.44492, lng: 75.637764 },
{ lat: 42.445503, lng: 75.64534 },
{ lat: 42.433681, lng: 75.6604 }
]
使用 JavaScript 实现此目的最简单(漂亮)的方法是什么?有一个很好的衬垫吗?初始字符串可以包含任意数量的坐标对。
您可以使用 split 获取每一行,然后将每一行映射到以逗号分隔:
const polygon = "42.44492,75.637764 42.445503,75.64534 42.433681,75.6604";
const formated = polygon.split(' ').map((item) => {
const [ lat, lng ] = item.split(',');
return { lat, lng };
});
console.log(formated);
如果你想解析你应该使用 let 的值:
const polygon = "42.44492,75.637764 42.445503,75.64534 42.433681,75.6604";
const formated = polygon.split(' ').map((item) => {
let [ lat, lng ] = item.split(',');
lat = parseFloat(lat); // or any other transformation you wish to make
lng = parseFloat(lng);
return { lat, lng };
});
console.log(formated);
使用 map 函数和 split 函数
const polygon = "42.44492,75.637764 42.445503,75.64534 42.433681,75.6604";
const res = polygon.split(' ').map(s => {
const [lat, lng] = s.split(',');
return { lat: Number(lat), lng: Number(lng) };
});
console.log(res);
const polygon = "42.44492,75.637764 42.445503,75.64534 42.433681,75.6604"
const polygonsArr = polygon.split(' ')
const result = []
polygonsArr.map(item => {
let a = item.split(',');
result.push({"lat": a[0], "lng": a[1]})
})
console.log(result)
这个space分隔的字符串:
const polygon = "42.44492,75.637764 42.445503,75.64534 42.433681,75.6604"
..应转换为包含对象的数组:
const polygon = [
{ lat: 42.44492, lng: 75.637764 },
{ lat: 42.445503, lng: 75.64534 },
{ lat: 42.433681, lng: 75.6604 }
]
使用 JavaScript 实现此目的最简单(漂亮)的方法是什么?有一个很好的衬垫吗?初始字符串可以包含任意数量的坐标对。
您可以使用 split 获取每一行,然后将每一行映射到以逗号分隔:
const polygon = "42.44492,75.637764 42.445503,75.64534 42.433681,75.6604";
const formated = polygon.split(' ').map((item) => {
const [ lat, lng ] = item.split(',');
return { lat, lng };
});
console.log(formated);
如果你想解析你应该使用 let 的值:
const polygon = "42.44492,75.637764 42.445503,75.64534 42.433681,75.6604";
const formated = polygon.split(' ').map((item) => {
let [ lat, lng ] = item.split(',');
lat = parseFloat(lat); // or any other transformation you wish to make
lng = parseFloat(lng);
return { lat, lng };
});
console.log(formated);
使用 map 函数和 split 函数
const polygon = "42.44492,75.637764 42.445503,75.64534 42.433681,75.6604";
const res = polygon.split(' ').map(s => {
const [lat, lng] = s.split(',');
return { lat: Number(lat), lng: Number(lng) };
});
console.log(res);
const polygon = "42.44492,75.637764 42.445503,75.64534 42.433681,75.6604"
const polygonsArr = polygon.split(' ')
const result = []
polygonsArr.map(item => {
let a = item.split(',');
result.push({"lat": a[0], "lng": a[1]})
})
console.log(result)