数组函数 reduce() 可以对数组中的所有元素依次迭代进行某种运算,即先使用初始运算结果和第一个元素进行运算,再使用得到的该运算结果和第二个元素进行运算,以此类推直至数组结束。该函数的运算表达式中通常同时包含运算结果变量名和元素变量名,迭代方式类似于大部分编程语言中的 for 语句,但循环时的下标没有暴露出来。
语法:
reduce(<result> = <initial_value>, <element> in <array> | <expression>)
- <result> 为运算结果的变量名
- <initial_value> 为运算结果的初始值
- <element> 为数组中元素的变量名
- <array> 为数组的别名
- <expression> 为运算表达式
当运算表达式中含有多个别名且非同源时,在 WITH 中使用该函数时会先将它们及其所有同源别名做笛卡尔乘积后再计算,在 RETURN 中使用该函数时会直接将它们及其所有同源别名截为等长后再计算。
一般用法
示例:将数组 [1,2,3,4] 中的数字求和
with [1,2,3] as array
return reduce(sum = 0, element in array | sum + element) as mySum