gpt4 book ai didi

javascript - 将一串坐标对转换为对象数组

转载 作者:行者123 更新时间:2023-11-30 10:57:04 25 4
gpt4 key购买 nike

我从数据库接收字符串形式的坐标,但我需要将其转换为一个对象数组,以便稍后与 Google map 一起使用。

我已经设法将数组成对拆分和分块,但在将分块转换为键值对时遇到问题。

let coordinatesString = "-80.486470, 43.390095, -80.486854, 43.390228, -80.486796, 43.389998, -80.486292, 43.389968, -80.486282, 43.390030"

// split the string by , in order to get an array
let splitArray = coordinatesString.split(', ')

function chunk(arr, chunkSize) {
var result = [];
for (var i=0,len=arr.length; i<len; i+=chunkSize)
result.push(arr.slice(i,i+chunkSize));
return result;
}

// chunk an array into couples of 2
let chunkedArray = [chunk(splitArray, 2)]
console.log (chunkedArray)
// ["-80.486470", "43.390095"], ["-80.486854", "43.390228"],
// ["-80.486796", "43.389998"], ["-80.486292", "43.389968"],
// ["-80.486282", "43.390030"]

// transform chunked array into an object
var objs = chunkedArray.map(function (arr) {
return arr.reduce(function (res, curr) {
var [key, value] = curr;
res[key] = value;
return res;
}, {});
});

console.log(objs);

// Current output

//[{
// -80.486282: "43.390030",
// -80.486292: "43.389968",
// -80.486470: "43.390095",
// -80.486796: "43.389998",
// -80.486854: "43.390228"
// }]

// Desired output
// [{ "lng": -80.486282, "lat": 43.390030 },
// { "lng": -80.486292, "lat": 43.389968 },
// { "lng": -80.486470, "lat": 43.390095 },
// { "lng": -80.486796, "lat": 43.389998 },
// { "lng": -80.486854, "lat": 43.390228 }]

将分块数组转换为 lng/lat 对象的最佳方法是什么?

最佳答案

试试下面的函数。

function getCoordinates(str) {
const arr = str.split(', ');
const finalArr = [];

for (var i = 0, n = arr.length; i < n; i+=2) {
finalArr.push({
"lng": parseFloat(arr[i]),
"lat": parseFloat(arr[i+1])
});
}

return finalArr;
}

let coordinatesString = "-80.486470, 43.390095, -80.486854, 43.390228, -80.486796, 43.389998, -80.486292, 43.389968, -80.486282, 43.390030";
console.log(getCoordinates(coordinatesString));

关于javascript - 将一串坐标对转换为对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59569366/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com