lua.vm.js对象/数组转换为表

我正在使用lua.vm.js为我的node应用程序的用户提供实时添加功能的能力。为此,我有一些JS类,我希望在lua中向他们提供。

现在我的问题是,我的一些函数应该返回数组或对象。 在Lua侧,它被翻译为userdata。在大多数情况下,这将起作用,但不适用于应该在ipairs/pairs函数中使用的数组。

我现在知道lua.vm.js中存在“in ipairs”或“in pairs”

问题是如何编写一个函数,以便以一种能够被lua.vm.js用作表的方式返回数组。

一些示例代码:

在JS方面:

let luaVM = require("lua.vm.js");
let l = new luaVM.Lua.State();
l._G.set("someExampleFunction",{
     example:function(){
         返回[1,2,3,4,5]; 
     }
 });

在Lua方面:

local shouldBeTable = someExampleFunction.example()

--这不会起作用,因为shouldBeTable不是一个表格
for key,value in pairs(shouldBeTable) do
     print(value)
 end

是否有一种方法来做到这一点或编写一个类似于arrayToTable的辅助函数?

点赞