这个用空格分隔的字符串:
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来获取每一行,然后将每一行用逗号映射成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);
在使用split函数的同时使用map函数
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)