Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Lua.vm.js在javascript中迭代Lua表_Javascript_Lua - Fatal编程技术网

使用Lua.vm.js在javascript中迭代Lua表

使用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代码)

不久前,我发布了一个关于lua.vm.js和javascript之间交互的问题

现在我有一个稍微不同的问题:

让我们假设我在

因为我使用的是lua.vm.js,所以我现在可以从javascript中通过

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]));
}