我有一个像这样的对象数组
polyPaths: LatLngLiteral[] = [{lat: 12.994169219614097, lng: 77.62397007054658}
{lat: 12.984802167360343, lng: 77.67581180638642}
{lat: 12.957702635784846, lng: 77.65864566869111}
{lat: 12.974765648082716, lng: 77.61538700169892}];
我想在textarea
中将此对象数组显示为字符串
(12.994169219614097,77.62397007054658)
(12.984802167360343,77.67581180638642)
(12.957702635784846,77.65864566869111)
(12.974765648082716,77.61538700169892)
在文本输入更改时,我希望字符串恢复为 polyPaths
的对象数组。
我尝试使用以下js示例:
let stringPath = this.polyPaths.map(path => {
return '(' + path.lat + ',' + path.lng + ')';
});
var convertedPath = stringPath.join('');
this.polyControls.area.setValue(convertedPath);
但无法在输入更改时将其恢复。
最佳答案
尝试以下操作,这是基本的字符串/数组操作
const polyPaths = [{
lat: 12.994169219614097,
lng: 77.62397007054658
}, {
lat: 12.984802167360343,
lng: 77.67581180638642
}, {
lat: 12.957702635784846,
lng: 77.65864566869111
}, {
lat: 12.974765648082716,
lng: 77.61538700169892
}]
// converting it to a string
const convertedPath = polyPaths.map(path => `(${path.lat},${path.lng})`).join('\n');
console.log(convertedPath)
// reversing it back
const reversed = convertedPath.split('\n').map(x => {
const [lat, lng] = x.slice(1, x.length - 1).split(",").map(Number)
return {
lat,
lng
}
})
console.log(reversed)
关于javascript - 如何将此类示例对象数组转换为字符串并将其恢复回来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65607586/