使用Lua.vm.js在javascript中迭代Lua表
不久前,我发布了一个关于lua.vm.js和javascript之间交互的问题 现在我有一个稍微不同的问题: 让我们假设我在 因为我使用的是lua.vm.js,所以我现在可以从javascript中通过使用Lua.vm.js在javascript中迭代Lua表,javascript,lua,Javascript,Lua,不久前,我发布了一个关于lua.vm.js和javascript之间交互的问题 现在我有一个稍微不同的问题: 让我们假设我在 因为我使用的是lua.vm.js,所以我现在可以从javascript中通过 window.model.get('test1') window.model.get('test2') window.model.get('test3') 但问题是我必须事先知道表中的条目是“test1”、“test2”等等 javascript中有没有一种方法(或者通过添加更多的Lua代码)
window.model.get('test1')
window.model.get('test2')
window.model.get('test3')
但问题是我必须事先知道表中的条目是“test1”、“test2”等等
javascript中有没有一种方法(或者通过添加更多的Lua代码)可以在不知道所有条目的情况下遍历整个表
提前谢谢 我认为在
model
中获取键列表的最简单方法是直接使用Lua
从我所看到的lua.vm.js
table对象不支持迭代,但您可以通过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]));
}
本机javascript
(对于obj中的var)
循环有效吗?@EtanReisner:不,Lua表不直接表示为javascript对象。在Lua中,您可以使用对
迭代所有表项。但是我找不到lua.vm.js的任何东西;关于它的文档很少,你看过吗?我之所以提出这个问题,是因为lua.vm.js似乎不再积极开发,而moonshine背后的开发人员仍然非常积极。
for (var i in my_keys) {
console.log(my_keys[i], window.model.get(my_keys[i]));
}