不久前,我发布了一个THIS问题,关于lua.vm.js和javascript之间的互动。
现在我的问题略有不同:
让我们假设我在REPL
中有以下代码model = {}
model['test1'] = 1
model['test3'] = 2
model['test4'] = 3
model['test5'] = 4
model['test6'] = 5
local window = js.global
window.model = model
因为我使用的是lua.vm.js,我现在可以通过javascript获取所有值了
window.model.get('test1')
window.model.get('test2')
window.model.get('test3')
但问题是我必须事先知道表中的条目是" test1"," test2"等等。
javascript中是否存在一种方式(或者可能通过添加更多Lua代码),我可以在不知道所有条目的情况下遍历整个表格?
提前致谢!
答案 0 :(得分:1)
我认为获取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]));
}