将 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)