如何仅用Delphi代码实现TMS WEB Core中TJSArray的操作?
用纯Delphi代码创建嵌套经纬度数组的TJSArray
你当前通过JavaScript的asm块为TJSArray赋值,现在可以用Delphi原生方法实现完全相同的效果,无需依赖JS代码:
方法一:分步创建子数组并添加
var jsArray: TJSArray; subLatLng: TJSArray; begin jsArray := TJSArray.New; // 创建第一组经纬度数组 subLatLng := TJSArray.New; subLatLng.push(-29.1252991); subLatLng.push(26.1627625); jsArray.push(subLatLng); // 创建第二组经纬度数组 subLatLng := TJSArray.New; subLatLng.push(-29.1228004); subLatLng.push(26.1614185); jsArray.push(subLatLng); end;
方法二:简洁初始化写法
利用TJSArray的Create构造函数直接传入元素初始化子数组,代码更紧凑:
var jsArray: TJSArray; begin jsArray := TJSArray.New; // 直接创建并添加包含经纬度的子数组 jsArray.push(TJSArray.Create(-29.1252991, 26.1627625)); jsArray.push(TJSArray.Create(-29.1228004, 26.1614185)); end;
说明
- TJSArray的
push方法支持添加任意JS兼容类型的元素,包括另一个TJSArray(即嵌套数组) TJSArray.Create(...)可以一次性传入多个元素完成数组初始化,替代多次调用push的写法- 两种写法最终生成的TJSArray和你原代码通过JS赋值的结果完全一致
内容的提问来源于stack exchange,提问作者Shaun Roselt
相关产品推荐
相关产品推荐

