docs:表达式文档 (#6282)

This commit is contained in:
hsm-lv 2023-02-28 15:10:35 +08:00 committed by GitHub
parent e5b9f24dfc
commit 7d4167b7b1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 229 additions and 230 deletions

View File

@ -4,15 +4,15 @@
用法:`IF(condition, consequent, alternate)`
* `condition:expression` 条件表达式.
* `consequent:any` 条件判断通过的返回结果
* `alternate:any` 条件判断不通过的返回结果
- `condition:expression` 条件表达式.
- `consequent:any` 条件判断通过的返回结果
- `alternate:any` 条件判断不通过的返回结果
返回:`any` 根据条件返回不同的结果
示例IF(A, B, C)
如果满足条件A则返回B否则返回C支持多层嵌套IF函数。
如果满足条件 A则返回 B否则返回 C支持多层嵌套 IF 函数。
也可以用表达式如A ? B : C
@ -20,9 +20,9 @@
用法:`AND(expression1, expression2, ...expressionN)`
* `conditions:...expression` 条件表达式.
- `conditions:...expression` 条件表达式.
返回:`boolean`
返回:`boolean`
条件全部符合,返回 true否则返回 false
@ -36,9 +36,9 @@
用法:`OR(expression1, expression2, ...expressionN)`
* `conditions:...expression` 条件表达式.
- `conditions:...expression` 条件表达式.
返回:`boolean`
返回:`boolean`
条件任意一个满足条件,返回 true否则返回 false
@ -52,10 +52,10 @@
用法:`XOR(condition1, condition2)`
* `condition1:expression` 条件表达式1
* `condition2:expression` 条件表达式2
- `condition1:expression` 条件表达式 1
- `condition2:expression` 条件表达式 2
返回:`boolean`
返回:`boolean`
异或处理,多个表达式组中存在奇数个真时认为真。
@ -63,7 +63,7 @@
用法:`IFS(condition1, result1, condition2, result2,...conditionN, resultN)`
* `args:...any` 条件,返回值集合
- `args:...any` 条件,返回值集合
返回:`any` 第一个满足条件的结果,没有命中的返回 false。
@ -79,7 +79,7 @@
用法:`ABS(num)`
* `num:number` 数值
- `num:number` 数值
返回:`number` 传入数值的绝对值
@ -89,7 +89,7 @@
用法:`MAX(num1, num2, ...numN)`
* `num:...number` 数值
- `num:...number` 数值
返回:`number` 所有传入值中最大的那个
@ -99,7 +99,7 @@
用法:`MIN(num1, num2, ...numN)`
* `num:...number` 数值
- `num:...number` 数值
返回:`number` 所有传入值中最小的那个
@ -109,7 +109,7 @@
用法:`SUM(num1, num2, ...numN)`
* `num:...number` 数值
- `num:...number` 数值
返回:`number` 所有传入数值的总和
@ -119,7 +119,7 @@
用法:`INT(num)`
* `num:number` 数值
- `num:number` 数值
返回:`number` 数值对应的整形
@ -129,8 +129,8 @@
用法:`MOD(num, divisor)`
* `num:number` 被除数
* `divisor:number` 除数
- `num:number` 被除数
- `divisor:number` 除数
返回:`number` 两数相除的余数
@ -146,8 +146,8 @@
用法:`ROUND(num[, numDigits = 2])`
* `num:number` 要处理的数字
* `numDigits:number` 小数位数
- `num:number` 要处理的数字
- `numDigits:number` 小数位数
返回:`number` 传入数值四舍五入后的结果
@ -157,8 +157,8 @@
用法:`FLOOR(num[, numDigits=2])`
* `num:number` 要处理的数字
* `numDigits:number` 小数位数
- `num:number` 要处理的数字
- `numDigits:number` 小数位数
返回:`number` 传入数值向下取整后的结果
@ -168,8 +168,8 @@
用法:`CEIL(num[, numDigits=2])`
* `num:number` 要处理的数字
* `numDigits:number` 小数位数
- `num:number` 要处理的数字
- `numDigits:number` 小数位数
返回:`number` 传入数值向上取整后的结果
@ -179,7 +179,7 @@
用法:`SQRT(num)`
* `num:number` 要处理的数字
- `num:number` 要处理的数字
返回:`number` 开平方的结果
@ -189,7 +189,7 @@
用法:`AVG(num1, num2, ...numN)`
* `num:...number` 要处理的数字
- `num:...number` 要处理的数字
返回:`number` 所有数值的平均值
@ -199,7 +199,7 @@
用法:`DEVSQ(num1, num2, ...numN)`
* `num:...number` 要处理的数字
- `num:...number` 要处理的数字
返回:`number` 所有数值的平均值
@ -209,7 +209,7 @@
用法:`AVEDEV(num1, num2, ...numN)`
* `num:...number` 要处理的数字
- `num:...number` 要处理的数字
返回:`number` 所有数值的平均值
@ -219,7 +219,7 @@
用法:`HARMEAN(num1, num2, ...numN)`
* `num:...number` 要处理的数字
- `num:...number` 要处理的数字
返回:`number` 所有数值的平均值
@ -229,8 +229,8 @@
用法:`LARGE(array, k)`
* `nums:array` 要处理的数字
* `k:number` 第几大
- `nums:array` 要处理的数字
- `k:number` 第几大
返回:`number` 所有数值的平均值
@ -240,7 +240,7 @@
用法:`UPPERMONEY(num)`
* `num:number` 要处理的数字
- `num:number` 要处理的数字
返回:`string` 数值中文大写字符
@ -260,7 +260,7 @@
用法:`LAST(array)`
* `arr:...number` 要处理的数组
- `arr:...number` 要处理的数组
返回:`any` 最后一个值
@ -272,8 +272,8 @@
用法:`LEFT(text, len)`
* `text:string` 要处理的文本
* `len:number` 要处理的长度
- `text:string` 要处理的文本
- `len:number` 要处理的长度
返回:`string` 对应字符串
@ -283,8 +283,8 @@
用法:`RIGHT(text, len)`
* `text:string` 要处理的文本
* `len:number` 要处理的长度
- `text:string` 要处理的文本
- `len:number` 要处理的长度
返回:`string` 对应字符串
@ -294,7 +294,7 @@
用法:`LEN(text)`
* `text:string` 要处理的文本
- `text:string` 要处理的文本
返回:`number` 长度
@ -304,7 +304,7 @@
用法:`LENGTH(textArr)`
* `textArr:Array<string>` 要处理的文本集合
- `textArr:Array<string>` 要处理的文本集合
返回:`Array<number>` 长度集合
@ -314,7 +314,7 @@
用法:`ISEMPTY(text)`
* `text:string` 要处理的文本
- `text:string` 要处理的文本
返回:`boolean` 判断结果
@ -324,7 +324,7 @@
用法:`CONCATENATE(text1, text2, ...textN)`
* `text:...string` 文本集合
- `text:...string` 文本集合
返回:`string` 连接后的文本
@ -334,7 +334,7 @@
用法:`CHAR(code)`
* `code:number` 编码值
- `code:number` 编码值
返回:`string` 指定位置的字符
@ -346,7 +346,7 @@
用法:`LOWER(text)`
* `text:string` 文本
- `text:string` 文本
返回:`string` 结果文本
@ -356,7 +356,7 @@
用法:`UPPER(text)`
* `text:string` 文本
- `text:string` 文本
返回:`string` 结果文本
@ -366,7 +366,7 @@
用法:`UPPERFIRST(text)`
* `text:string` 文本
- `text:string` 文本
返回:`string` 结果文本
@ -376,9 +376,9 @@
用法:`PADSTART(text)`
* `text:string` 文本
* `num:number` 目标长度
* `pad:string` 用于补齐的文本
- `text:string` 文本
- `num:number` 目标长度
- `pad:string` 用于补齐的文本
返回:`string` 结果文本
@ -392,7 +392,7 @@
用法:`CAPITALIZE(text)`
* `text:string` 文本
- `text:string` 文本
返回:`string` 结果文本
@ -406,7 +406,7 @@
用法:`ESCAPE(text)`
* `text:string` 文本
- `text:string` 文本
返回:`string` 结果文本
@ -420,8 +420,8 @@
用法:`TRUNCATE(text, 6)`
* `text:string` 文本
* `text:number` 最长长度
- `text:string` 文本
- `text:number` 最长长度
返回:`string` 结果文本
@ -435,8 +435,8 @@
用法:`BEFORELAST(text, '.')`
* `text:string` 文本
* `delimiter:string` 结束文本
- `text:string` 文本
- `delimiter:string` 结束文本
返回:`string` 判断结果
@ -446,8 +446,8 @@
用法:`SPLIT(text, ',')`
* `text:string` 文本
* `delimiter:string` 文本片段
- `text:string` 文本
- `delimiter:string` 文本片段
返回:`Array<string>` 文本集
@ -461,7 +461,7 @@
用法:`TRIM(text)`
* `text:string` 文本
- `text:string` 文本
返回:`string` 处理后的文本
@ -471,7 +471,7 @@
用法:`STRIPTAG(text)`
* `text:string` 文本
- `text:string` 文本
返回:`string` 处理后的文本
@ -485,7 +485,7 @@
用法:`LINEBREAK(text)`
* `text:string` 文本
- `text:string` 文本
返回:`string` 处理后的文本
@ -499,8 +499,8 @@
用法:`STARTSWITH(text, '片段')`
* `text:string` 文本
* `startString:string` 起始文本
- `text:string` 文本
- `startString:string` 起始文本
返回:`string` 判断结果
@ -510,8 +510,8 @@
用法:`ENDSWITH(text, '片段')`
* `text:string` 文本
* `endString:string` 结束文本
- `text:string` 文本
- `endString:string` 结束文本
返回:`string` 判断结果
@ -521,8 +521,8 @@
用法:`CONTAINS(text, searchText)`
* `text:string` 文本
* `searchText:string` 搜索文本
- `text:string` 文本
- `searchText:string` 搜索文本
返回:`string` 判断结果
@ -532,9 +532,9 @@
用法:`REPLACE(text, search, replace)`
* `text:string` 要处理的文本
* `search:string` 要被替换的文本
* `replace:string` 要替换的文本
- `text:string` 要处理的文本
- `search:string` 要被替换的文本
- `replace:string` 要替换的文本
返回:`string` 处理结果
@ -544,9 +544,9 @@
用法:`SEARCH(text, search, 0)`
* `text:string` 要处理的文本
* `search:string` 用来搜索的文本
* `start:number` 起始位置
- `text:string` 要处理的文本
- `search:string` 用来搜索的文本
- `start:number` 起始位置
返回:`number` 命中的位置
@ -556,9 +556,9 @@
用法:`MID(text, from, len)`
* `text:string` 要处理的文本
* `from:number` 起始位置
* `len:number` 处理长度
- `text:string` 要处理的文本
- `from:number` 起始位置
- `len:number` 处理长度
返回:`number` 命中的位置
@ -568,7 +568,7 @@
用法:`BASENAME(text)`
* `text:string` 要处理的文本
- `text:string` 要处理的文本
返回:`string` 文件名
@ -586,15 +586,15 @@
创建日期对象,可以通过特定格式的字符串,或者数值。
需要注意的是其中月份的数值是从0开始的也就是说
如果是12月份你应该传入数值11。
需要注意的是,其中月份的数值是从 0 开始的,也就是说,
如果是 12 月份,你应该传入数值 11。
### TIMESTAMP
用法:`TIMESTAMP(date, 'x')`
* `date:date` 日期对象
* `format:string` 时间戳格式,带毫秒传入 'x'。默认为 'X' 不带毫秒的。
- `date:date` 日期对象
- `format:string` 时间戳格式,带毫秒传入 'x'。默认为 'X' 不带毫秒的。
返回:`number` 时间戳
@ -616,8 +616,8 @@
用法:`WEEKDAY(date)`
* `date:any` 日期
* `type:number` 星期定义类型默认为11表示0至6代表星期一到星期日2表示1至7代表星期一到星期日
- `date:any` 日期
- `type:number` 星期定义类型,默认为 11 表示 0 6 代表星期一到星期日2 表示 1 7 代表星期一到星期日
返回:`number` 星期几的数字标识
@ -631,8 +631,8 @@ WEEKDAY('2023-02-27') 得到 1
用法:`WEEK(date)`
* `date:any` 日期
* `isISO:boolean` 是否ISO星期
- `date:any` 日期
- `isISO:boolean` 是否 ISO 星期
返回:`number` 星期几的数字标识
@ -646,8 +646,8 @@ WEEK('2023-03-05') 得到 10
用法:`DATETOSTR(date, 'YYYY-MM-DD')`
* `date:any` 日期对象、日期字符串、时间戳
* `format:string` 日期格式,默认为 "YYYY-MM-DD HH:mm:ss"
- `date:any` 日期对象、日期字符串、时间戳
- `format:string` 日期格式,默认为 "YYYY-MM-DD HH:mm:ss"
返回:`string` 日期字符串
@ -664,10 +664,10 @@ DATETOSTR(DATE('2021-12-21'), 'YYYY.MM.DD hh:mm:ss') 得到 '2021.12.21 08:00:00
用法:`DATERANGESPLIT(date, 'YYYY-MM-DD')`
* `date:string` 日期范围字符串
* `key:string` 取值标识0或'start'表示获取开始时间1或'end'表示获取结束时间
* `format:string` 日期格式,可选
* `delimiter:string` 分隔符,可选,默认为','
- `date:string` 日期范围字符串
- `key:string` 取值标识0 或'start'表示获取开始时间1 或'end'表示获取结束时间
- `format:string` 日期格式,可选
- `delimiter:string` 分隔符,可选,默认为','
返回:`string` 日期字符串
@ -686,9 +686,9 @@ DATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '
用法:`STARTOF(date[unit = "day"])`
* `date:date` 日期对象
* `unit:string` 比如可以传入 'day'、'month'、'year' 或者 `week` 等等
* `format:string` 日期格式,可选
- `date:date` 日期对象
- `unit:string` 比如可以传入 'day'、'month'、'year' 或者 `week` 等等
- `format:string` 日期格式,可选
返回:`date` 新的日期对象
@ -698,9 +698,9 @@ DATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '
用法:`ENDOF(date[unit = "day"])`
* `date:date` 日期对象
* `unit:string` 比如可以传入 'day'、'month'、'year' 或者 `week` 等等
* `format:string` 日期格式,可选
- `date:date` 日期对象
- `unit:string` 比如可以传入 'day'、'month'、'year' 或者 `week` 等等
- `format:string` 日期格式,可选
返回:`date` 新的日期对象
@ -710,7 +710,7 @@ DATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '
用法:`YEAR(date)`
* `date:date` 日期对象
- `date:date` 日期对象
返回:`number` 数值
@ -720,7 +720,7 @@ DATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '
用法:`MONTH(date)`
* `date:date` 日期对象
- `date:date` 日期对象
返回:`number` 数值
@ -730,7 +730,7 @@ DATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '
用法:`DAY(date)`
* `date:date` 日期对象
- `date:date` 日期对象
返回:`number` 数值
@ -740,7 +740,7 @@ DATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '
用法:`HOUR(date)`
* `date:date` 日期对象
- `date:date` 日期对象
返回:`number` 数值
@ -750,7 +750,7 @@ DATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '
用法:`MINUTE(date)`
* `date:date` 日期对象
- `date:date` 日期对象
返回:`number` 数值
@ -760,7 +760,7 @@ DATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '
用法:`SECOND(date)`
* `date:date` 日期对象
- `date:date` 日期对象
返回:`number` 数值
@ -770,8 +770,8 @@ DATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '
用法:`YEARS(endDate, startDate)`
* `endDate:date` 日期对象
* `startDate:date` 日期对象
- `endDate:date` 日期对象
- `startDate:date` 日期对象
返回:`number` 数值
@ -781,8 +781,8 @@ DATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '
用法:`MINUTES(endDate, startDate)`
* `endDate:date` 日期对象
* `startDate:date` 日期对象
- `endDate:date` 日期对象
- `startDate:date` 日期对象
返回:`number` 数值
@ -792,8 +792,8 @@ DATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '
用法:`DAYS(endDate, startDate)`
* `endDate:date` 日期对象
* `startDate:date` 日期对象
- `endDate:date` 日期对象
- `startDate:date` 日期对象
返回:`number` 数值
@ -803,8 +803,8 @@ DATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '
用法:`HOURS(endDate, startDate)`
* `endDate:date` 日期对象
* `startDate:date` 日期对象
- `endDate:date` 日期对象
- `startDate:date` 日期对象
返回:`number` 数值
@ -814,9 +814,9 @@ DATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '
用法:`DATEMODIFY(date, 2, 'days')`
* `date:date` 日期对象
* `num:number` 数值
* `unit:string` 单位:支持年、月、天等等
- `date:date` 日期对象
- `num:number` 数值
- `unit:string` 单位:支持年、月、天等等
返回:`date` 日期对象
@ -826,14 +826,14 @@ DATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '
DATEMODIFY(A, -2, 'month')
对日期 A 进行往前减2月的操作。
对日期 A 进行往前减 2 月的操作。
### STRTODATE
用法:`STRTODATE(value[, format=""])`
* `value:string` 日期字符
* `format:string` 日期格式
- `value:string` 日期字符
- `format:string` 日期格式
返回:`date` 日期对象
@ -845,9 +845,9 @@ DATEMODIFY(A, -2, 'month')
用法:`ISBEFORE(a, b)`
* `a:date` 第一个日期
* `b:date` 第二个日期
* `unit:string` 单位,默认是 'day' 即之比较到天
- `a:date` 第一个日期
- `b:date` 第二个日期
- `unit:string` 单位,默认是 'day' 即之比较到天
返回:`boolean` 判断结果
@ -857,9 +857,9 @@ DATEMODIFY(A, -2, 'month')
用法:`ISAFTER(a, b)`
* `a:date` 第一个日期
* `b:date` 第二个日期
* `unit:string` 单位,默认是 'day' 即之比较到天
- `a:date` 第一个日期
- `b:date` 第二个日期
- `unit:string` 单位,默认是 'day' 即之比较到天
返回:`boolean` 判断结果
@ -869,10 +869,10 @@ DATEMODIFY(A, -2, 'month')
用法:`BETWEENRANGE(date, [start, end])`
* `date:any` 第一个日期
* `daterange:Array<any>` 日期范围
* `unit:string` 单位,默认是 'day' 即之比较到天
* `inclusivity:string` 包容性规则,默认为'[]'。[ 表示包含、( 表示排除,如果使用包容性参数,则必须传入两个指示符,如'()'表示左右范围都排除
- `date:any` 第一个日期
- `daterange:Array<any>` 日期范围
- `unit:string` 单位,默认是 'day' 即之比较到天
- `inclusivity:string` 包容性规则,默认为'[]'。[ 表示包含、( 表示排除,如果使用包容性参数,则必须传入两个指示符,如'()'表示左右范围都排除
返回:`boolean` 判断结果
@ -884,9 +884,9 @@ DATEMODIFY(A, -2, 'month')
用法:`ISSAMEORBEFORE(a, b)`
* `a:date` 第一个日期
* `b:date` 第二个日期
* `unit:string` 单位,默认是 'day' 即之比较到天
- `a:date` 第一个日期
- `b:date` 第二个日期
- `unit:string` 单位,默认是 'day' 即之比较到天
返回:`boolean` 判断结果
@ -896,9 +896,9 @@ DATEMODIFY(A, -2, 'month')
用法:`ISSAMEORAFTER(a, b)`
* `a:date` 第一个日期
* `b:date` 第二个日期
* `unit:string` 单位,默认是 'day' 即之比较到天
- `a:date` 第一个日期
- `b:date` 第二个日期
- `unit:string` 单位,默认是 'day' 即之比较到天
返回:`boolean` 判断结果
@ -910,7 +910,7 @@ DATEMODIFY(A, -2, 'month')
用法:`COUNT(arr)`
* `arr:Array<any>` 数组
- `arr:Array<any>` 数组
返回:`boolean` 结果
@ -920,8 +920,8 @@ DATEMODIFY(A, -2, 'month')
用法:`ARRAYMAP(arr, item => item)`
* `arr:Array<any>` 数组
* `iterator:Array<any>` 箭头函数
- `arr:Array<any>` 数组
- `iterator:Array<any>` 箭头函数
返回:`boolean` 结果
@ -931,8 +931,8 @@ DATEMODIFY(A, -2, 'month')
用法:`ARRAYFILTER(arr, item => item)`
* `arr:Array<any>` 数组
* `iterator:Array<any>` 箭头函数
- `arr:Array<any>` 数组
- `iterator:Array<any>` 箭头函数
返回:`boolean` 结果
@ -943,8 +943,8 @@ DATEMODIFY(A, -2, 'month')
用法:`ARRAYFINDINDEX(arr, item => item === 2)`
* `arr:Array<any>` 数组
* `iterator:Array<any>` 箭头函数
- `arr:Array<any>` 数组
- `iterator:Array<any>` 箭头函数
返回:`number` 结果
@ -959,8 +959,8 @@ ARRAYFINDINDEX([0, 2, false], item => item === 2) 得到 1
用法:`ARRAYFIND(arr, item => item === 2)`
* `arr:Array<any>` 数组
* `iterator:Array<any>` 箭头函数
- `arr:Array<any>` 数组
- `iterator:Array<any>` 箭头函数
返回:`any` 结果
@ -975,8 +975,8 @@ ARRAYFIND([0, 2, false], item => item === 2) 得到 2
用法:`ARRAYSOME(arr, item => item === 2)`
* `arr:Array<any>` 数组
* `iterator:Array<any>` 箭头函数
- `arr:Array<any>` 数组
- `iterator:Array<any>` 箭头函数
返回:`boolean` 结果
@ -991,8 +991,8 @@ ARRAYSOME([0, 2, false], item => item === 2) 得到 true
用法:`ARRAYEVERY(arr, item => item === 2)`
* `arr:Array<any>` 数组
* `iterator:Array<any>` 箭头函数
- `arr:Array<any>` 数组
- `iterator:Array<any>` 箭头函数
返回:`boolean` 结果
@ -1007,8 +1007,8 @@ ARRAYEVERY([0, 2, false], item => item === 2) 得到 false
用法:`ARRAYINCLUDES(arr, 2)`
* `arr:Array<any>` 数组
* `item:any` 元素
- `arr:Array<any>` 数组
- `item:any` 元素
返回:`any` 结果
@ -1022,7 +1022,7 @@ ARRAYINCLUDES([0, 2, false], 2) 得到 true
用法:`COMPACT(arr)`
* `arr:Array<any>` 数组
- `arr:Array<any>` 数组
返回:`Array<any>` 结果
@ -1036,8 +1036,8 @@ COMPACT([0, 1, false, 2, '', 3]) 得到 [1, 2, 3]
用法:`JOIN(arr, string)`
* `arr:Array<any>` 数组
* `separator:String` 分隔符
- `arr:Array<any>` 数组
- `separator:String` 分隔符
返回:`String` 结果
@ -1051,7 +1051,7 @@ JOIN(['a', 'b', 'c'], '=') 得到 'a=b=c'
用法:`CONCAT(['a', 'b', 'c'], ['1'], ['3'])`
* `arr:Array<any>` 数组
- `arr:Array<any>` 数组
返回:`Array<any>` 结果
@ -1065,8 +1065,8 @@ CONCAT(['a', 'b', 'c'], ['1'], ['3']) 得到 ['a', 'b', 'c', '1', '3']
用法:`UNIQ([{a: '1'}, {b: '2'}, {a: '1'}], 'x')`
* `arr:Array<any>` 数组
* `field:string` 字段
- `arr:Array<any>` 数组
- `field:string` 字段
返回:`Array<any>` 结果
@ -1076,33 +1076,49 @@ CONCAT(['a', 'b', 'c'], ['1'], ['3']) 得到 ['a', 'b', 'c', '1', '3']
UNIQ([{a: '1'}, {b: '2'}, {a: '1'}] 'id')
## 编码
### ENCODEJSON
用法:`ENCODEJSON({name: 'amis'})`
* `obj:object` 数组
- `obj:object` JS 对象
返回:`string` 结果
将JS对象转换成JSON字符串
JS 对象转换成 JSON 字符串
示例:
ENCODEJSON({name: 'amis'}) 得到 '{"name":"amis"}'
### DECODEJSON
用法:`DECODEJSON('{\"name\": "amis"}')`
- `str:string` 字符串
返回:`object` 结果
解析 JSON 编码数据,返回 JS 对象
示例:
DECODEJSON('{\"name\": "amis"}') 得到 {name: 'amis'}
## 其他
### GET
用法:`GET(arr, 2)`
* `obj:any` 对象或数组
* `path:string` 路径
* `defaultValue:any` 如果解析不到则返回该值
- `obj:any` 对象或数组
- `path:string` 路径
- `defaultValue:any` 如果解析不到则返回该值
返回:`any` 结果
根据对象或者数组的path路径获取值。 如果解析 value 是 undefined 会以 defaultValue 取代
根据对象或者数组的 path 路径获取值。 如果解析 value 是 undefined 会以 defaultValue 取代
示例:
@ -1116,25 +1132,8 @@ GET({arr: [{name: 'amis', age: 18}]}, 'arr.1.name', 'not-found') 得到 'not-fou
用法:`ISTYPE([{a: '1'}, {b: '2'}, {a: '1'}], 'array')`
* `判断对象:string` null
- `判断对象:string` null
返回:`boolean` 结果
判断是否为类型支持string, number, array, date, plain-object。
## 编码
### DECODEJSON
用法:`DECODEJSON('{\"name\": "amis"}')`
* `str:string` 字符串
返回:`object` 结果
解析JSON编码数据返回JS对象
示例:
DECODEJSON('{\"name\": "amis"}') 得到 {name: 'amis'}

View File

@ -1731,33 +1731,6 @@ export const doc: {
},
namespace: "数组"
},
{
name: "GET",
description: "根据对象或者数组的path路径获取值。 如果解析 value 是 undefined 会以 defaultValue 取代\n\n示例\n\nGET([0, 2, {name: 'amis', age: 18}], 1) 得到 2\nGET([0, 2, {name: 'amis', age: 18}], '2.name') 得到 'amis'\nGET({arr: [{name: 'amis', age: 18}]}, 'arr[0].name') 得到 'amis'\nGET({arr: [{name: 'amis', age: 18}]}, 'arr.0.name') 得到 'amis'\nGET({arr: [{name: 'amis', age: 18}]}, 'arr.1.name', 'not-found') 得到 'not-found'",
example: "GET(arr, 2)",
params: [
{
type: "any",
name: "obj",
description: "对象或数组"
},
{
type: "string",
name: "path",
description: "路径"
},
{
type: "any",
name: "defaultValue",
description: "如果解析不到则返回该值"
}
],
returns: {
type: "any",
description: "结果"
},
namespace: "其他"
},
{
name: "COMPACT",
description: "数组过滤掉 false、null、0 和 \"\"\n\n示例\n\nCOMPACT([0, 1, false, 2, '', 3]) 得到 [1, 2, 3]",
@ -1844,14 +1817,14 @@ export const doc: {
{
type: "object",
name: "obj",
description: "数组"
description: "JS对象"
}
],
returns: {
type: "string",
description: "结果"
},
namespace: "数组"
namespace: "编码"
},
{
name: "DECODEJSON",
@ -1870,6 +1843,33 @@ export const doc: {
},
namespace: "编码"
},
{
name: "GET",
description: "根据对象或者数组的path路径获取值。 如果解析 value 是 undefined 会以 defaultValue 取代\n\n示例\n\nGET([0, 2, {name: 'amis', age: 18}], 1) 得到 2\nGET([0, 2, {name: 'amis', age: 18}], '2.name') 得到 'amis'\nGET({arr: [{name: 'amis', age: 18}]}, 'arr[0].name') 得到 'amis'\nGET({arr: [{name: 'amis', age: 18}]}, 'arr.0.name') 得到 'amis'\nGET({arr: [{name: 'amis', age: 18}]}, 'arr.1.name', 'not-found') 得到 'not-found'",
example: "GET(arr, 2)",
params: [
{
type: "any",
name: "obj",
description: "对象或数组"
},
{
type: "string",
name: "path",
description: "路径"
},
{
type: "any",
name: "defaultValue",
description: "如果解析不到则返回该值"
}
],
returns: {
type: "any",
description: "结果"
},
namespace: "其他"
},
{
name: "ISTYPE",
description: "判断是否为类型支持string, number, array, date, plain-object。",

View File

@ -2091,28 +2091,6 @@ export class Evaluator {
return (Array.isArray(arr) ? arr : []).includes(item);
}
/**
* path路径获取值 value undefined defaultValue
*
*
*
* GET([0, 2, {name: 'amis', age: 18}], 1) 2
* GET([0, 2, {name: 'amis', age: 18}], '2.name') 'amis'
* GET({arr: [{name: 'amis', age: 18}]}, 'arr[0].name') 'amis'
* GET({arr: [{name: 'amis', age: 18}]}, 'arr.0.name') 'amis'
* GET({arr: [{name: 'amis', age: 18}]}, 'arr.1.name', 'not-found') 'not-found'
*
* @param {any} obj
* @param {string} path
* @param {any} defaultValue
* @namespace
* @example GET(arr, 2)
* @returns {any}
*/
fnGET(obj: any, path: string, defaultValue?: any) {
return get(obj, path, defaultValue);
}
/**
* falsenull0 ""
*
@ -2205,8 +2183,8 @@ export class Evaluator {
*
* ENCODEJSON({name: 'amis'}) '{"name":"amis"}'
*
* @param {object} obj
* @namespace
* @param {object} obj JS对象
* @namespace
* @example ENCODEJSON({name: 'amis'})
* @returns {string}
*/
@ -2230,6 +2208,28 @@ export class Evaluator {
return JSON.parse(str);
}
/**
* path路径获取值 value undefined defaultValue
*
*
*
* GET([0, 2, {name: 'amis', age: 18}], 1) 2
* GET([0, 2, {name: 'amis', age: 18}], '2.name') 'amis'
* GET({arr: [{name: 'amis', age: 18}]}, 'arr[0].name') 'amis'
* GET({arr: [{name: 'amis', age: 18}]}, 'arr.0.name') 'amis'
* GET({arr: [{name: 'amis', age: 18}]}, 'arr.1.name', 'not-found') 'not-found'
*
* @param {any} obj
* @param {string} path
* @param {any} defaultValue
* @namespace
* @example GET(arr, 2)
* @returns {any}
*/
fnGET(obj: any, path: string, defaultValue?: any) {
return get(obj, path, defaultValue);
}
/**
* string, number, array, date, plain-object
*