我有以下代码,创建一个
TJSArray
,其中有两个位置(纬度和经度)坐标:
var
jsArray: TJSArray;
begin
jsArray := TJSArray.New;
asm
jsArray = [
[-29.1252991, 26.1627625],
[-29.1228004, 26.1614185]
];
end;
end;
上面的代码工作得很好,但我在 Delphi 中声明
TJSArray
,然后使用 JavaScript 将数据放入其中。我更愿意只使用 Delphi,但我不知道 TJSArray
在 Delphi 中如何工作。
我可以使用
jsArray.push()
将单个项目推入其中,但我认为这不是我所需要的,因为我需要将多个项目推入其中。
如何将上面的代码变成纯Delphi代码?
据我所知,
TJSArray
的工作方式只是通过push()
过程,并且它必须将某种TJSValue
推入其中。
因此要在Delphi中执行上述代码,可以执行以下操作:
var
jsArray: TJSArray;
Coordinates: Array[0..1] of Double;
begin
jsArray := TJSArray.New;
Coordinates[0] := -29.1252991;
Coordinates[1] := 6.1627625;
jsArray.push(JS.toArray(Coordinates));
Coordinates[0] := -29.1228004;
Coordinates[1] := 26.1614185;
jsArray.push(JS.toArray(Coordinates));
end;
但此时,代码更长、更丑,但为了将第二个数组推入
TJSArray
,您必须创建一个完整的第二个数组并使用 JS.toArray
方法将其转换为适合 push()
程序的类型。
这很糟糕,但我还没有找到更好的方法。