使用 lua.vm.js 在 javascript 中遍历 Lua 表。

有段时间以前,我发布了一个关于 lua.vm.js 和 JavaScript 之间交互的问题。现在我有一个略微不同的问题:假设我在 REPL 中有以下代码:model = {}model ['test1'] = 1model ['test3'] = 2model ['test4'] = 3model ['test5'] = 4model ['test6'] = 5local window = js.globalwindow.model = model因为我使用了 lua.vm.js,我知道从 JavaScript 中可以通过以下方式获取所有值:window.model.get('test1')window.model.get('test2')window.model.get('test3')但问题是,我必须事先知道表项是“test1”、“test2”等。有没有一种方法可以在不知道所有条目的情况下在 JavaScript 中迭代整个表格?提前感谢!

点赞
用户204011
用户204011

我认为获取model中键列表的最简单的方法是直接使用Lua。

据我所见,lua.vm.js表对象不支持遍历,但你可以使用JavaScript进行遍历:

my_keys = L.execute('local r = {}; for k in pairs(model) do r[#r+1] = k end; return unpack(r)')

接下来,你可以这样循环:

for (var i in my_keys) {
    console.log(my_keys[i], window.model.get(my_keys[i]));
}
2014-06-24 21:56:05