You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何仅用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 20:20:03