Appearance
foreach 
for控件有两种:数字 for(numeric for)和泛型 for(generic for),本章介绍泛型for.
泛型 for 循环通过一个迭代函数(iterator)来遍历迭代参数内的所有值。
业务属性 
| 属性 | 含义 | 输入限定 | 示例值 | 
|---|---|---|---|
| enable | 是否启用该控件,未启用时不编译 | 选择值 | 启用 | 
| text | 与控件关联的文本 | 常量 | foreach | 
| params | 循环变量 | 索引变量名: 常量值变量名: 常量 | 索引变量名:k 值变量名:v | 
| variable | 被迭代的变量 | 流程变量 | # | 
| iterator | 迭代函数 | 选择值 | ipairs | 
目前支持的迭代函数:
- ipairs:迭代数组,返回2个循环变量,p1为数组下标,p2为数组下标所对应的元素值。
- pairs:迭代实体对象,返回2个循环变量,p1为属性字段名,p2为属性值。
循环变量的命名在params中定义,上述中的p1,p2仅作示例。
使用示例 
ipairs 
使用LuaScript控件定义两个数组,用于存放每一轮循环所产生的迭代变量:
lua
local index = {}
local value = {}local index = {}
local value = {}
将迭代函数的返回值定义为k,v,迭代http请求body参数中的array变量,迭代函数选择ipairs:

在循环体内使用TableInsert控件将第一个循环变量k插入到刚刚定义的index数组中:

将第二个循环变量v插入到刚刚定义的value数组中:

使用输出控件输出index,value:
json
{
  "p1":"#{index}",
  "p2":"#{value}"
}{
  "p1":"#{index}",
  "p2":"#{value}"
}
使用curl请求接口:
$ curl http://localhost:6636/api/foreach -d "{ \"array\": [10,20,30,40,50,60] }"$ curl http://localhost:6636/api/foreach -d "{ \"array\": [10,20,30,40,50,60] }"接口返回:
json
{
  "resCode": "0",
  "resMsg": "success",
  "data": {
    "p1": [1,2,3,4,5,6],
    "p2": [10,20,30,40,50,60]
  }
}{
  "resCode": "0",
  "resMsg": "success",
  "data": {
    "p1": [1,2,3,4,5,6],
    "p2": [10,20,30,40,50,60]
  }
}可以看到在ipairs中,由第一个循环变量组成的index是由数组下标构成的,而由第二个循环变量组成的value是由数组元素构成的。
pairs 
使用LuaScript控件定义两个数组,用于存放每一轮循环所产生的迭代变量:
lua
local key = {}
local value = {}local key = {}
local value = {}
将迭代函数的返回值定义为k,v,迭代http请求body参数中的week变量,迭代函数选择pairs:

在循环体内使用TableInsert控件将第一个循环变量k插入到刚刚定义的key数组中:

将第二个循环变量v插入到刚刚定义的value数组中:

使用输出控件输出key,value:
json
{
  "p1":"#{key}",
  "p2":"#{value}"
}{
  "p1":"#{key}",
  "p2":"#{value}"
}
使用curl请求接口:
$ curl http://localhost:6636/api/foreach -d "{\"week\":{\"Sunday\":7,\"Monday\":1,\"Tuesday\":2,\"Wednesday\":3,\"Thursday\":4,\"Friday\":5,\"Saturday\":6}}"$ curl http://localhost:6636/api/foreach -d "{\"week\":{\"Sunday\":7,\"Monday\":1,\"Tuesday\":2,\"Wednesday\":3,\"Thursday\":4,\"Friday\":5,\"Saturday\":6}}"接口返回:
json
{
  "resCode": "0",
  "resMsg": "success",
  "data": {
    "p1": ["Sunday", "Monday", "Tuesday", "Wednesday","Thursday", "Friday", "Saturday"],
    "p2": [7,6,5,4,3,2,1]
  }
}{
  "resCode": "0",
  "resMsg": "success",
  "data": {
    "p1": ["Sunday", "Monday", "Tuesday", "Wednesday","Thursday", "Friday", "Saturday"],
    "p2": [7,6,5,4,3,2,1]
  }
}可以看到在pairs中,由第一个循环变量组成的key是由属性名构成的,而由第二个循环变量组成的value是由属性值构成的。