在【每个】中使用该模块时异常

BUG反馈 · 41 次浏览
白云朔 创建于 1天19小时前

测试数据:
[{"A":"A1","B":"B1","C":"C1"},{"A":"A2","B":"B2","C":"C2"},{"A":"A3","B":"B3","C":"C3"}]

具体表现:
当【每个】中存在【表格数据操作】模块时,【每个】模块始终只提取了第一行的数据

错误情况如下:


回复内容
CL 1天18小时前
#1

不要在循环里修改被循环的对象试试。

白云朔 回复 CL 1天2小时前 :

【每个】模块仍然只输出了第一行
调试报告:https://temp.getquicker.net/1144232/dbb665512eb54434b1c4eca891d42a1e.html


白云朔 最后更新于 1天2小时前
CL 回复 白云朔 1天2小时前 :

动作分享一下我试试

白云朔 回复 CL 1天2小时前 :

https://getquicker.net/Sharedaction?code=36ede6b2-50de-4ee4-d1e2-08ddd5d225e9

白云朔 回复 CL 1天2小时前 :

测试了一下,在禁用【表格数据操作】时,【每个】模块工作正常。该异常应该时仅在【表格数据操作】模式为更新行时出现,但令人奇怪的是,如果模式为添加行,会提示集合已修改;枚举操作可能无法执行。 这里的循环内外并未操作同一个表格变量,仅仅是添加行的操作似乎并不应该出现此报错

CL 回复 白云朔 1天1小时前 :

是因为你赋值给了“表格副本”,但实际上这2个变量指向了同一个对象,相当于直接更新了“表格”变量。 把第一步禁用了,也会没问题了。

白云朔 回复 CL 1天1小时前 :

但是这里比较反直觉,对于不太明白Quicker底层运行逻辑的用户可能会造成困扰。“赋值”不应该是将值复制到新的对象吗?为什么新的变量其本质仍然是一条指向原有变量的链接,是否有办法解决这一问题?

CL 回复 白云朔 1天1小时前 :

试试 $= {表格}.Copy()

白云朔 回复 CL 1天1小时前 :

使用  $= ({表格}.Copy()).Rows  该表达式,【每个】模块按预期成功正常运行。

此问题已解决,建议修改表格变量类型文档中,遍历表格数据一节的表达式用例,以避免其他用户出现此问题


白云朔 回复 CL 1天1小时前 :

并且在使用  $= ({表格}.Copy()).Rows  的情况下,不对{表格}变量创建副本变量,直接在【每个】内部对{表格}变量执行操作,其表现也仍然正常

CL 回复 白云朔 21小时26分钟前 :

好,我试试。

回复主贴