javascript - 如何将此类示例对象数组转换为字符串并将其恢复回来?

标签 javascript angular typescript

我有一个像这样的对象数组

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/

相关文章:

javascript - 获取数字的每一位数字

javascript - TypeScript 中的 JQuery 元素数组在迭代时类型错误

typescript - 如何在 typescript 中导入类型定义?

与类同名的 Typescript 导入接口(interface)

typescript - 自动字符串枚举

javascript - Axios 帖子在 Chrome (CORS) 中停滞

javascript - 你如何在 Jison 中匹配零个或多个标记?

javascript - 语法错误 : expected expression, 得到 '<' - javascript

angular - 类型 'code' 上不存在属性 'Error'

javascript - Angular4 - 如何使用 Karma 和 Jasmine 对指令进行单元测试