FQL 函数参考
下面记录了所有 流查询语言(FQL) 函数。
一般功能
断言
如果条件为假,则在消息中抛出错误。
句法 | $assert($cond: bool, $msg: string) => 错误 |
例子 | $assert(user.age <18, "error: user cannot vote!") |
平均的
返回数值数组的平均值。
句法 | $average($array: array<num>) =< 数 |
例子 | $平均([1,2,3,4,5]) -> 3 |
布尔值
将参数转换为其有效的布尔值。
句法 | $boolean($arg: any) => 布尔值 |
例子 |
|
包含
如果字符串包含模式,则返回 true。
句法 | $contains($str: string, $pattern: string | regex) => 布尔 |
例子 |
|
解码网址
从 URL 解码字符串。
句法 | $decodeUrl($val: 字符串) => 字符串 |
例子 | $decodeUrl("https://mozilla.org/?x=%D1%88%D0%B5%D0%BB%D0%BB%D1%8B") -> "https://mozilla.org/?x =وеллы" |
decodeUrl 组件
从先前使用创建的组件解码字符串encodeUrlComponent
。
句法 | $decodeUrlComponent($val: 字符串) => 字符串 |
例子 | $decodeUrlComponent("%3Fx%3Dtest") -> "?x=test" |
每个
将函数应用于对象的每个键/值对。
句法 | $each($obj: 对象, func: ($val, $key) : 任何) |
例子 |
|
编码网址
将值编码为 URL。
句法 | $encodeUrl($val: 字符串) => 字符串 |
例子 | $encodeUrl("https://mozilla.org/?x=Èллы") -> "https://mozilla.org/?x=%D1%88%D0%B5%D0%BB%D0%BB%D1 %8B" |
encodeUrl 组件
将值编码到 URL 的组件中。
句法 | $encodeUrlComponent($val: 字符串) => 字符串 |
例子 | $encodeUrlComponent("?x=test") -> "%3Fx%3Dtest" |
评估
计算表达式。
句法 | $eval($val:string) => 任意 |
例子 | $eval("[1,$string(2),3]") -> [1,"2",3] |
存在
如果值不为 null 或未定义,则返回 true。
句法 | $exists($val: any) => 布尔值 |
例子 |
|
筛选
返回满足函数中定义的谓词的元素数组。
句法 | $filter($arr: array, $func: ($e, $index?: number?, $ar: array )=> boolean) => array |
例子 | $filter([1,2,3,4,5], fn($e){ $e>3}) -> [4, 5] |
加入
使用可选的分隔符字符串将数组的元素连接成一个字符串。
句法 | $join($arr: 数组 |
例子 |
|
JSON
将对象转换为 JSON 字符串。
句法 | $json($val:any) => 字符串 |
例子 | $json({"a": 1, "b" : "你好"}) -> "{"a":1,"b":"你好"}" |
json 解析
将 JSON 字符串解析为对象。
句法 | $jsonParse($val:string) => 对象 |
例子 | $jsonParse('{"one": 1, "two": [3, "four"]}') -> {"one": 1,"two": [ 3,"four"]} |
钥匙
返回对象中键的数组。
句法 | $keys($obj: object) => 数组 |
例子 |
|
长度
返回字符串的长度。
句法 | $length($str: string) => 数字 |
例子 |
|
抬头
返回对象中键的值。
句法 | $lookup($obj: object, $key: string) => 任意 |
例子 | ($o := { "name" : "John", "email": "john@gmail.com"}; $lookup($o, "name")) -> "John" |
小写
返回字符串的小写版本。
句法 | $lowercase($str: 字符串) => 字符串 |
例子 | $lowercase("Hello World") -> "你好世界" |
地图
使用函数映射数组的每个元素,并返回包含所有映射元素的新数组。
句法 | $map($arr: array, $func: ($e, $index?: number?, $ar: array) : 数组 |
例子 | $map([1,2,3,4,5], fn($e){ $e *2}) -> [2,4,6,8,10] |
最大限度
返回数值数组的最大值。
句法 | $max($array) => 数字 |
例子 | $max([9,2,17,3]) -> 17 |
匹配
返回匹配模式的字符串数组。
句法 | $match($str: string, $pattern: string | regex) => 数组 |
例子 | $match("ababbabbbcc",/a(b+)/) -> ["ab", "abb", "abbb"] |
合并
返回一个新对象,该对象具有合并到其中的对象数组中每个对象的属性。
句法 | $merge($arr: 数组 |
例子 | $merge([{"a":1},{"b":2}]) -> {"a": 1,"b": 2} |
不是
如果值为 false 则返回 true,否则返回 false。
句法 | $not($x: any) => 布尔值 |
例子 |
|
软垫
返回用 $pad (如果提供)填充到一定长度的字符串的副本。
句法 | $pad($str: string, $length: number, $pad?: string) => 字符串 |
例子 |
|
分割
将数组划分为大小为 $n 的数组。
句法 | $partition($array:any, $n: numbers) => 数组 |
例子 |
|
代替
返回一个字符串,所有出现的模式都被替换字符串替换。
句法 | $replace($str: string, $pattern: string | regex, $replacement: string) => 字符串 |
例子 |
|
减少
使用函数将数组缩减为某个值。
句法 | $reduce(数组, 函数 [, 初始化]) |
例子 | $reduce([1,2,3,4], fn($prev, $cur) { $prev*$cur}) ) -> 24 |
分裂
使用模式将字符串拆分为字符串数组。
句法 | $split($str: string, $pattern: string | regex, $flags?: string) => 数组 |
例子 |
|
传播
返回具有单个键/值对的对象数组,其中键是属性的名称,值是属性的值。
句法 | $spread($val: any) => 数组<对象> |
例子 | $spread({ "a": 1, "b": 2}) -> [ { "a" : 1}, {"b": 2}] |
细绳
返回输入值的字符串表示;如果 $prettify 为 true,则输出字符串被格式化以提高可读性。
句法 | $string($value: any, $prettify?true | false) => 字符串 |
例子 |
|
子串
返回从 $start 开始且长度为 $length(如果提供)的字符串的子字符串。
句法 | $substring($str: string, $start: number, $length?: number) => 字符串 |
例子 |
|
子串之后
返回第一次出现分隔符后的字符串的子字符串。
句法 | $substringAfter($str: 字符串, $separator: 字符串) => 字符串 |
例子 | $substringAfter("abc@gmail.com", "@") -> "gmail.com" |
子串之前
返回第一次出现分隔符之前的字符串的子字符串。
句法 | $substringBefore($str: 字符串, $separator: 字符串) => 字符串 |
例子 | $substringBefore( "john@gmail.com", "@") -> "john" |
和
返回数值数组的值的总和。
句法 | $sum($array) => 数字 |
例子 | $sum([1,2,3,4]) -> 10 |
修剪
返回删除了前导和尾随空格的字符串副本。
句法 | $trim($str: 字符串) => 字符串 |
例子 | $trim("你好\n 世界") -> "你好世界" |
类型
返回值的类型。
句法 | $type($val: any) => 字符串 |
例子 |
|
大写
返回字符串的大写版本
句法 | $uppercase($str: 字符串) => 字符串 |
例子 | $uppercase("你好") -> "你好" |
uuid
以字符串形式返回唯一 ID(UUID 版本 4)。
句法 | $uuid => 字符串 |
例子 | $uuid -> "503c5a9f-b8fb-402a-b0d7-fae17490bdf6" |
数组函数
附加
返回一个新数组,其值附加(添加)到数组。
句法 | $append($arr: array, $val: any) => 数组 |
例子 |
|
数数
返回数组中元素的数量。
句法 | $count($array) => 数字 |
例子 |
|
清楚的
返回一个新数组,其中包含 $arr 的不同元素,并消除了重复项。
句法 | $distinct($arr: 数组) => 数组 |
例子 | $distinct(["a", "b", "b", "c"]) -> ["a", "b", "c"] |
撤销
返回一个新数组,其中数组元素的顺序相反。
句法 | $reverse($arr: 数组) => 数组 |
例子 | $reverse([1,2,3,4,5]) -> [5,4,3,2,1] |
洗牌
返回一个新数组,其中包含随机排列的数组元素。
句法 | $shuffle($arr: 数组) => 数组 |
例子 | $shuffle([1,2,3,4]) -> [3,1,4,2] |
种类
使用 $swapFn 函数对数组元素进行排序的高阶函数。比较器函数有两个参数。如果它返回 true,元素将被交换。
句法 | $sort($arr: array, $swapFn: ($l, $r)) => 布尔值 |
例子 |
|
压缩
获取两个或多个数组并卷积(压缩)一组数组中的每个值。
句法 | $zip($ar1:Array, $ar2:Array, $ar3;Array, ...) => 数组 |
例子 | $zip([1,2,3],[4,5,6]) -> [[1,4],[2,5],[3,6]] |
数值函数
腹肌
返回数字的绝对值。
句法 | $abs(n:数字) : 数字 |
例子 | $abs(-1) -> 1 |
阿科斯
返回多个弧度的反余弦值。结果介于 0 和 pi 之间。该数字必须介于 -1 和 1 之间。
句法 | $acos($num: 数字) => 数字 |
例子 | $acos(1) -> 0 |
阿科什
以弧度为单位返回数字的反双曲余弦值。该数字必须是 1 到 inf 之间的数字。结果介于 0 和 inf 之间。
句法 | $acosh($num: 数字) => 数字 |
例子 | $acosh(1) -> 0 |
阿信
返回弧度数的反正弦值。结果介于 -pi/2 和 pi/2 之间。该数字必须介于 -1 和 1 之间。
句法 | $asin($num: 数字) => 数字 |
例子 | $asin(1) -> 1.5707963267948966 |
阿信
以弧度为单位返回数字的反双曲正弦值。结果介于 -inf 和 inf 之间。
句法 | $asinh($num: 数字) => 数字 |
例子 | $asinh(1) -> 1.5707963267948966 |
晒黑
返回多个弧度的反正切值。结果介于 -pi/2 和 pi/2 之间。
句法 | $atan($num: 数字) => 数字 |
例子 | $atan(1) -> 0.7853981633974483 |
阿坦赫
以弧度为单位返回数字的反双曲正切值。该数字必须介于 -1 和 1 之间。结果介于 -inf 和 inf 之间。
句法 | $atanh($num: 数字) => 数字 |
例子 | $atanh(1) -> 信息 |
阿坦 2
以弧度为单位返回 atan(y / x)。结果介于 -pi 和 pi 之间。平面中从原点到点 (x, y) 的矢量与正 X 轴成这个角度。它知道两个输入的符号,因此它可以计算角度的正确象限。例如,atan(1) 和 atan2(1, 1) 都是 pi/4,但 atan2(-1, -1) 是 -3*pi/4。
句法 | $atan2($x: 数字, $y: 数字) => 数字 |
例子 | $atan2(-1, -1) -> -2.356194490192345 |
cbrt
返回数字的立方根。
句法 | $cbrt($num: 数字) => 数字 |
例子 | $cbrt(27) -> 3 |
天花板
返回大于或等于数字的最小整数。
句法 | $ceil($num: 数字) => 数字 |
例子 | $ceil(3.4) -> 4 |
持续的
返回具有给定名称的常量值。例如:e、ln 2、log2 e、log10 e、pi 或 π。
句法 | $常量($name: 字符串) => 数字 |
例子 | $常数('e') -> 2.718281828459045 |
余弦
返回多个弧度的余弦值。
句法 | $cos($num: 数字) => 数字 |
例子 | $cos(1) -> 0.5403023058681398 |
cosh
返回多个弧度的双曲余弦值。
句法 | $cosh($num: 数字) => 数字 |
例子 | $cosh(1) -> 1.5430806348152437 |
exp
返回 e 的整数次方,其中 e = 2.718281... 是自然对数的底。
句法 | $exp($num: 数字) => 数字 |
例子 | $exp(16) -> 8886110.520507872 |
地面
返回小于或等于数字的最大整数。
句法 | $floor($num: 数字) => 数字 |
例子 | $地板(3.4)-> 3 |
格式基础
在可选的基数系统中将数字转换为字符串,如果未提供基数,则使用基数 10 来创建字符串。
句法 | $formatBase($num: 数字, $base?: 数字) => 字符串 |
例子 | $formatBase(100, 2) -> "1100100" |
是有限的
如果输入的值不是无穷大,则返回 true,否则返回 false。
句法 | $isFinite( $num: 数字 ) => 数字 |
例子 |
|
日志
返回数字的自然对数(以 e 为底)。
句法 | $log($num: 数字) => 数字 |
例子 | $日志(16)-> 2.772588722239781 |
log10
返回数字的以 10 为底的对数。
句法 | $log10($num: 数字) => 数字 |
例子 | $log10(16) -> 1.2041199826559248 |
log2
返回数字的以 2 为底的对数。
句法 | $log2($num: 数字) => 数字 |
例子 | $log2(16) -> 4 |
数字
将值转换为数字。
句法 | $number($x: string | number | bool) => 数字 |
例子 |
|
力量
返回 $num 的 $exp 次方。
句法 | $power($num: 数字, $exp: 数字) => 数字 |
例子 |
|
圆形的
将数字四舍五入为可选的精度小数位数。如果精度为负,则其值指定要舍入到小数点左侧的哪一列。
句法 | $round($num: 数字, $precision?: 数字) => 数字 |
例子 |
|
罪
返回弧度数的正弦值。
句法 | $sin($num: 数字) => 数字 |
例子 | $sin(1) -> 0.8414709848078965 |
信
返回多个弧度的双曲正弦值。
句法 | $sinh($num: 数字) => 数字 |
例子 | $辛赫(1) -> 1.1752011936438014 |
开方
返回数字的平方根。
句法 | $sqrt($num: 数字) => 数字 |
例子 | $sqrt(16) -> 4 |
棕褐色
返回多个弧度的正切值。
句法 | $tan($num: 数字) => 数字 |
例子 | $tan(1) -> 1.5574077246549023 |
tanh
返回多个弧度的双曲正切值。
句法 | $tanh($num: 数字) => 数字 |
例子 | $tanh(1) -> 0.7615941559557649 |
日期和时间函数
日期之后
如果 $timestamp1 在 $timestamp2 之后返回 true,否则返回 false。
句法 | $afterDate($timestamp1: string |number, $timestamp2: string |number) => 布尔值 |
例子 | $afterDate("2023-02-09", "2023-02-08") -> true $afterDate("2023-02-08", "2023-02-08") -> false |
日期前
如果 $timestamp1 在 $timestamp2 之前返回 true,否则返回 false。
句法 | $beforeDate($timestamp1: string |number, $timestamp2: string |number) => 布尔值 |
例子 |
|
日期等于
如果两个时间戳相同则返回 true,否则返回 false。
句法 | $dateEquals($timestamp1: string |number, $timestamp2: string |number) => 布尔值 |
例子 |
|
加日期
添加 $units 类型的持续时间,它可以是 ["years", "months", "days", "hours", "minutes", "seconds", "milliseconds"] 之一到 $timestamp 并返回新的时间戳。如果 $duration 小于零,那么它将从 $timestamp 中减去。
句法 | $datePlus($timestamp1: string |number, $duration: number, $units, ) => 数字 |
例子 |
|
天
从时间戳中提取日期并将其作为数字返回。
句法 | $day($timestamp: string |number) => 数字 |
例子 | $day("2023-02-08") -> 8 |
一周中的天
以数字形式返回星期几 [1=星期一,... 6=星期六,7= 星期日]。
句法 | $dayOfTheWeek($timestamp: string |number) => 数字 |
例子 |
|
差异日期
返回指定单位中的两个时间戳之间的差异,可以是 ["years", "months", "days", "hours", "minutes", "seconds", "milliseconds"] 之一。
句法 | $diffDate($timestamp1: string |number, $timestamp2: string |number, $units : string, ) => 数字 |
例子 |
|
来自米利斯
将纪元以来的毫秒数转换为字符串。$picture 是可选的,如果没有提供,它将默认为 ISO 格式。图片规格符合 Unicode 日期格式标准。
句法 | $fromMillis($val:number, $picture?: string) => 字符串 |
例子 |
|
有相同的日期
如果两个时间戳的 $units 中指定的组件相同,则返回 true,否则返回 false。$units 是一个数组,包含来自 ["years", "months", "days", "hours", "minutes", "seconds", "milliseconds"] 的一个或多个字符串。
句法 | $hasSameDate($timestamp1: string |number, $timestamp2: string |number, units?: Array |
例子 |
|
小时
从时间戳中提取本地小时组件并将其作为数字返回。
句法 | $hours($timestamp: string |number) => 数字 |
例子 | $hours("2023-02-08T07:56:14.747+00:00") -> 7 |
毫秒
从时间戳中提取毫秒并将其作为数字返回。
句法 | $milliSeconds($timestamp: string |number) => 数字 |
例子 | $milliSeconds("2023-02-08T07:56:14.747+00:00") -> 747 |
分钟
从时间戳中提取分钟部分并将其作为数字返回。
句法 | $minutes($timestamp: string |number) => 数字 |
例子 | $分钟("2023-02-08T07:56:14.747+00:00") -> 56 |
月
从时间戳中提取月份部分。
句法 | $month($timestamp: string |number) => 数字 |
例子 | $月(“2023-02-08”)-> 2 |
秒
从时间戳中提取本地秒组件并将其作为数字返回。
句法 | $seconds($timestamp: string |number) => 数字 |
例子 | $seconds("2023-02-08T07:56:14.747+00:00") -> 14 |
至米利斯
将字符串转换为自纪元以来的毫秒数。$picture 是可选的,如果没有提供,它将默认为 ISO 格式。图片规格符合 Unicode 日期格式标准。
句法 | $toMillis($val:string, $picture?: string) => 数字 |
例子 |
|
年
从时间戳中提取年份部分并将其作为数字返回。
句法 | $year($timestamp: string |number) => 数字 |
例子 | $year("2023-02-08T07:56:14.747+00:00") -> 2023 |