项目 | 描述 |
语法 | foreach(d, f, user_data) |
参数 | |
示例 | 示例1 outer_keys=['e66fd4aa-f281-472f-b919-fc7e7474****', '66fee78d-1887-42ec-9119-a9b50b7f****']
say(concat('keys[1]=', get(outer_keys, 1)))
say(concat('keys[2]=', get(outer_keys, 2)))
inner_keys=[]
set(inner_keys, 'dev', '243390eb-00b7-4551-a6b8-021bb34d****')
set(inner_keys, 'zeus', '4747d33b-12b0-45e6-ac10-a8e191d6****')
def echo_each(k, v, u) {
s = concat('keys[', k, ']=', v)
say(s)
}
foreach(inner_keys, echo_each, [])
示例2 输出m3u8 的前2个分片,演示终止foreach循环。 def echo_each(k, v, u) {
say(v)
if match_re(v, '.*ts') {
ts_cnt = get(u, 'ts_cnt')
ts_cnt = add(ts_cnt, 1)
set(u, 'ts_cnt', ts_cnt)
if ge(ts_cnt, 2) {
return false
}
}
}
m3u8 = ''
m3u8 = concat(m3u8, '#EXTM3U8', '\n')
m3u8 = concat(m3u8, '#EXT-X-MEDIA-SEQUENCE:14065****\n')
m3u8 = concat(m3u8, '#EXT-X-TARGETDURATION:10\n')
m3u8 = concat(m3u8, '#EXTINF:8,\n')
m3u8 = concat(m3u8, 'http://***.cn/cache/289_/seg0/index140651514_1406****.ts\n')
m3u8 = concat(m3u8, '#EXTINF:9,\n')
m3u8 = concat(m3u8, 'http://***.cn/cache/289_/seg0/index140651514_1406****.ts\n')
m3u8 = concat(m3u8, '#EXTINF:10,\n')
m3u8 = concat(m3u8, 'http://***.cn/cache/289_/seg0/index140651514_1406****.ts\n')
lines = split(m3u8, '\n')
u = []
set(u, 'ts_cnt', 0)
foreach(lines, echo_each, u)
|
返回值 | 始终返回true。本示例的返回值如下: 示例1的返回值 keys[1]=e66fd4aa-f281-472f-b919-fc7e7474****
keys[2]=66fee78d-1887-42ec-9119-a9b50b7f****
keys[dev]=243390eb-00b7-4551-a6b8-021bb34d****
keys[zeus]=4747d33b-12b0-45e6-ac10-a8e191d6****
示例2的返回值 #EXTM3U8
#EXT-X-MEDIA-SEQUENCE:140651513
#EXT-X-TARGETDURATION:10
#EXTINF:8,
http://***.cn/cache/289_/seg0/index140651514_1406****.ts
#EXTINF:9,
http://***.cn/cache/289_/seg0/index140651514_1406****.ts
|