amis-formula 3.1.0 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/doc.js +99 -99
- package/esm/doc.md +149 -147
- package/esm/error.js +1 -1
- package/esm/evalutor.d.ts +158 -147
- package/esm/evalutor.js +159 -148
- package/esm/evalutorForAsync.js +1 -1
- package/esm/filter.js +1 -1
- package/esm/function.js +1 -1
- package/esm/index.js +1 -1
- package/esm/lexer.js +2 -2
- package/esm/parser.js +1 -1
- package/lib/doc.js +99 -99
- package/lib/doc.md +149 -147
- package/lib/error.js +1 -1
- package/lib/evalutor.d.ts +158 -147
- package/lib/evalutor.js +159 -148
- package/lib/evalutorForAsync.js +1 -1
- package/lib/filter.js +1 -1
- package/lib/function.js +1 -1
- package/lib/index.js +1 -1
- package/lib/lexer.js +2 -2
- package/lib/parser.js +1 -1
- package/package.json +7 -2
package/esm/doc.md
CHANGED
|
@@ -4,72 +4,74 @@
|
|
|
4
4
|
|
|
5
5
|
用法:`IF(condition, consequent, alternate)`
|
|
6
6
|
|
|
7
|
-
* `condition:expression`
|
|
7
|
+
* `condition:expression` 条件表达式。例如:语文成绩>80
|
|
8
8
|
* `consequent:any` 条件判断通过的返回结果
|
|
9
9
|
* `alternate:any` 条件判断不通过的返回结果
|
|
10
10
|
|
|
11
11
|
返回:`any` 根据条件返回不同的结果
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
如果满足条件condition,则返回consequent,否则返回alternate,支持多层嵌套IF函数。
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
也可以用表达式如:A ? B : C
|
|
15
|
+
等价于直接用JS表达式如:condition ? consequent : alternate。
|
|
18
16
|
|
|
19
17
|
### AND
|
|
20
18
|
|
|
21
19
|
用法:`AND(expression1, expression2, ...expressionN)`
|
|
22
20
|
|
|
23
|
-
* `conditions:...expression`
|
|
21
|
+
* `conditions:...expression` 条件表达式,多个用逗号隔开。例如:语文成绩>80, 数学成绩>80
|
|
24
22
|
|
|
25
23
|
返回:`boolean`
|
|
26
24
|
|
|
27
|
-
条件全部符合,返回 true,否则返回 false
|
|
25
|
+
条件全部符合,返回 true,否则返回 false。
|
|
28
26
|
|
|
29
|
-
示例:AND(语文成绩>80, 数学成绩>80)
|
|
27
|
+
示例:AND(语文成绩>80, 数学成绩>80),
|
|
30
28
|
|
|
31
|
-
语文成绩和数学成绩都大于 80,则返回 true,否则返回 false
|
|
29
|
+
语文成绩和数学成绩都大于 80,则返回 true,否则返回 false,
|
|
32
30
|
|
|
33
|
-
|
|
31
|
+
等价于直接用JS表达式如:语文成绩>80 && 数学成绩>80。
|
|
34
32
|
|
|
35
33
|
### OR
|
|
36
34
|
|
|
37
35
|
用法:`OR(expression1, expression2, ...expressionN)`
|
|
38
36
|
|
|
39
|
-
* `conditions:...expression`
|
|
37
|
+
* `conditions:...expression` 条件表达式,多个用逗号隔开。例如:语文成绩>80, 数学成绩>80
|
|
40
38
|
|
|
41
39
|
返回:`boolean`
|
|
42
40
|
|
|
43
|
-
条件任意一个满足条件,返回 true,否则返回 false
|
|
41
|
+
条件任意一个满足条件,返回 true,否则返回 false。
|
|
44
42
|
|
|
45
|
-
示例:OR(语文成绩>80, 数学成绩>80)
|
|
43
|
+
示例:OR(语文成绩>80, 数学成绩>80),
|
|
46
44
|
|
|
47
|
-
语文成绩和数学成绩任意一个大于 80,则返回 true,否则返回 false
|
|
45
|
+
语文成绩和数学成绩任意一个大于 80,则返回 true,否则返回 false,
|
|
48
46
|
|
|
49
|
-
|
|
47
|
+
等价于直接用JS表达式如:语文成绩>80 || 数学成绩>80。
|
|
50
48
|
|
|
51
49
|
### XOR
|
|
52
50
|
|
|
53
|
-
用法:`XOR(condition1, condition2)`
|
|
51
|
+
用法:`XOR(condition1, condition2, ...expressionN)`
|
|
54
52
|
|
|
55
|
-
* `
|
|
56
|
-
* `condition2:expression` 条件表达式2
|
|
53
|
+
* `condition:...expression` 条件表达式,多个用逗号隔开。例如:语文成绩>80, 数学成绩>80
|
|
57
54
|
|
|
58
55
|
返回:`boolean`
|
|
59
56
|
|
|
60
57
|
异或处理,多个表达式组中存在奇数个真时认为真。
|
|
61
58
|
|
|
59
|
+
示例:XOR(语文成绩 > 80, 数学成绩 > 80, 英语成绩 > 80)
|
|
60
|
+
|
|
61
|
+
三门成绩中有一门或者三门大于 80,则返回 true,否则返回 false。
|
|
62
|
+
|
|
62
63
|
### IFS
|
|
63
64
|
|
|
64
65
|
用法:`IFS(condition1, result1, condition2, result2,...conditionN, resultN)`
|
|
65
66
|
|
|
66
|
-
* `
|
|
67
|
+
* `condition:...expression` 条件表达式
|
|
68
|
+
* `result:...any` 返回值
|
|
67
69
|
|
|
68
70
|
返回:`any` 第一个满足条件的结果,没有命中的返回 false。
|
|
69
71
|
|
|
70
72
|
判断函数集合,相当于多个 else if 合并成一个。
|
|
71
73
|
|
|
72
|
-
示例:IFS(语文成绩 > 80, "优秀", 语文成绩 > 60, "良", "继续努力")
|
|
74
|
+
示例:IFS(语文成绩 > 80, "优秀", 语文成绩 > 60, "良", "继续努力"),
|
|
73
75
|
|
|
74
76
|
如果语文成绩大于 80,则返回优秀,否则判断大于 60 分,则返回良,否则返回继续努力。
|
|
75
77
|
|
|
@@ -83,7 +85,7 @@
|
|
|
83
85
|
|
|
84
86
|
返回:`number` 传入数值的绝对值
|
|
85
87
|
|
|
86
|
-
|
|
88
|
+
返回传入数字的绝对值。
|
|
87
89
|
|
|
88
90
|
### MAX
|
|
89
91
|
|
|
@@ -93,7 +95,7 @@
|
|
|
93
95
|
|
|
94
96
|
返回:`number` 所有传入值中最大的那个
|
|
95
97
|
|
|
96
|
-
|
|
98
|
+
获取最大值,如果只有一个参数且是数组,则计算这个数组内的值。
|
|
97
99
|
|
|
98
100
|
### MIN
|
|
99
101
|
|
|
@@ -103,7 +105,7 @@
|
|
|
103
105
|
|
|
104
106
|
返回:`number` 所有传入值中最小的那个
|
|
105
107
|
|
|
106
|
-
|
|
108
|
+
获取最小值,如果只有一个参数且是数组,则计算这个数组内的值。
|
|
107
109
|
|
|
108
110
|
### SUM
|
|
109
111
|
|
|
@@ -113,7 +115,7 @@
|
|
|
113
115
|
|
|
114
116
|
返回:`number` 所有传入数值的总和
|
|
115
117
|
|
|
116
|
-
|
|
118
|
+
求和,如果只有一个参数且是数组,则计算这个数组内的值。
|
|
117
119
|
|
|
118
120
|
### INT
|
|
119
121
|
|
|
@@ -123,7 +125,7 @@
|
|
|
123
125
|
|
|
124
126
|
返回:`number` 数值对应的整形
|
|
125
127
|
|
|
126
|
-
|
|
128
|
+
将数值向下取整为最接近的整数。
|
|
127
129
|
|
|
128
130
|
### MOD
|
|
129
131
|
|
|
@@ -134,20 +136,20 @@
|
|
|
134
136
|
|
|
135
137
|
返回:`number` 两数相除的余数
|
|
136
138
|
|
|
137
|
-
返回两数相除的余数,参数 number 是被除数,divisor
|
|
139
|
+
返回两数相除的余数,参数 number 是被除数,divisor 是除数。
|
|
138
140
|
|
|
139
141
|
### PI
|
|
140
142
|
|
|
141
143
|
用法:`PI()`
|
|
142
144
|
|
|
143
|
-
圆周率 3.1415
|
|
145
|
+
圆周率 3.1415...。
|
|
144
146
|
|
|
145
147
|
### ROUND
|
|
146
148
|
|
|
147
149
|
用法:`ROUND(num[, numDigits = 2])`
|
|
148
150
|
|
|
149
151
|
* `num:number` 要处理的数字
|
|
150
|
-
* `numDigits:number`
|
|
152
|
+
* `numDigits:number` 小数位数,默认为2
|
|
151
153
|
|
|
152
154
|
返回:`number` 传入数值四舍五入后的结果
|
|
153
155
|
|
|
@@ -158,7 +160,7 @@
|
|
|
158
160
|
用法:`FLOOR(num[, numDigits=2])`
|
|
159
161
|
|
|
160
162
|
* `num:number` 要处理的数字
|
|
161
|
-
* `numDigits:number`
|
|
163
|
+
* `numDigits:number` 小数位数,默认为2
|
|
162
164
|
|
|
163
165
|
返回:`number` 传入数值向下取整后的结果
|
|
164
166
|
|
|
@@ -169,7 +171,7 @@
|
|
|
169
171
|
用法:`CEIL(num[, numDigits=2])`
|
|
170
172
|
|
|
171
173
|
* `num:number` 要处理的数字
|
|
172
|
-
* `numDigits:number`
|
|
174
|
+
* `numDigits:number` 小数位数,默认为2
|
|
173
175
|
|
|
174
176
|
返回:`number` 传入数值向上取整后的结果
|
|
175
177
|
|
|
@@ -193,7 +195,7 @@
|
|
|
193
195
|
|
|
194
196
|
返回:`number` 所有数值的平均值
|
|
195
197
|
|
|
196
|
-
|
|
198
|
+
返回所有参数的平均值,如果只有一个参数且是数组,则计算这个数组内的值。
|
|
197
199
|
|
|
198
200
|
### DEVSQ
|
|
199
201
|
|
|
@@ -203,7 +205,7 @@
|
|
|
203
205
|
|
|
204
206
|
返回:`number` 所有数值的平均值
|
|
205
207
|
|
|
206
|
-
|
|
208
|
+
返回数据点与数据均值点之差(数据偏差)的平方和,如果只有一个参数且是数组,则计算这个数组内的值。
|
|
207
209
|
|
|
208
210
|
### AVEDEV
|
|
209
211
|
|
|
@@ -213,7 +215,7 @@
|
|
|
213
215
|
|
|
214
216
|
返回:`number` 所有数值的平均值
|
|
215
217
|
|
|
216
|
-
|
|
218
|
+
数据点到其算术平均值的绝对偏差的平均值。
|
|
217
219
|
|
|
218
220
|
### HARMEAN
|
|
219
221
|
|
|
@@ -223,7 +225,7 @@
|
|
|
223
225
|
|
|
224
226
|
返回:`number` 所有数值的平均值
|
|
225
227
|
|
|
226
|
-
|
|
228
|
+
数据点的调和平均值,如果只有一个参数且是数组,则计算这个数组内的值。
|
|
227
229
|
|
|
228
230
|
### LARGE
|
|
229
231
|
|
|
@@ -234,7 +236,7 @@
|
|
|
234
236
|
|
|
235
237
|
返回:`number` 所有数值的平均值
|
|
236
238
|
|
|
237
|
-
数据集中第 k
|
|
239
|
+
数据集中第 k 个最大值。
|
|
238
240
|
|
|
239
241
|
### UPPERMONEY
|
|
240
242
|
|
|
@@ -244,7 +246,7 @@
|
|
|
244
246
|
|
|
245
247
|
返回:`string` 数值中文大写字符
|
|
246
248
|
|
|
247
|
-
|
|
249
|
+
将数值转为中文大写金额。
|
|
248
250
|
|
|
249
251
|
### RAND
|
|
250
252
|
|
|
@@ -252,9 +254,9 @@
|
|
|
252
254
|
|
|
253
255
|
返回大于等于 0 且小于 1 的均匀分布随机实数。每一次触发计算都会变化。
|
|
254
256
|
|
|
255
|
-
示例:`RAND()*100
|
|
257
|
+
示例:`RAND()*100`,
|
|
256
258
|
|
|
257
|
-
返回 0-100
|
|
259
|
+
返回 0-100 之间的随机数。
|
|
258
260
|
|
|
259
261
|
### LAST
|
|
260
262
|
|
|
@@ -264,7 +266,7 @@
|
|
|
264
266
|
|
|
265
267
|
返回:`any` 最后一个值
|
|
266
268
|
|
|
267
|
-
|
|
269
|
+
取数据最后一个。
|
|
268
270
|
|
|
269
271
|
## 文本函数
|
|
270
272
|
|
|
@@ -298,7 +300,7 @@
|
|
|
298
300
|
|
|
299
301
|
返回:`number` 长度
|
|
300
302
|
|
|
301
|
-
|
|
303
|
+
计算文本的长度。
|
|
302
304
|
|
|
303
305
|
### LENGTH
|
|
304
306
|
|
|
@@ -308,7 +310,7 @@
|
|
|
308
310
|
|
|
309
311
|
返回:`Array<number>` 长度集合
|
|
310
312
|
|
|
311
|
-
|
|
313
|
+
计算文本集合中所有文本的长度。
|
|
312
314
|
|
|
313
315
|
### ISEMPTY
|
|
314
316
|
|
|
@@ -318,7 +320,7 @@
|
|
|
318
320
|
|
|
319
321
|
返回:`boolean` 判断结果
|
|
320
322
|
|
|
321
|
-
|
|
323
|
+
判断文本是否为空。
|
|
322
324
|
|
|
323
325
|
### CONCATENATE
|
|
324
326
|
|
|
@@ -328,7 +330,7 @@
|
|
|
328
330
|
|
|
329
331
|
返回:`string` 连接后的文本
|
|
330
332
|
|
|
331
|
-
|
|
333
|
+
将多个传入值连接成文本。
|
|
332
334
|
|
|
333
335
|
### CHAR
|
|
334
336
|
|
|
@@ -340,7 +342,7 @@
|
|
|
340
342
|
|
|
341
343
|
返回计算机字符集的数字代码所对应的字符。
|
|
342
344
|
|
|
343
|
-
|
|
345
|
+
示例:`CHAR(97)` 等价于 "a"。
|
|
344
346
|
|
|
345
347
|
### LOWER
|
|
346
348
|
|
|
@@ -350,7 +352,7 @@
|
|
|
350
352
|
|
|
351
353
|
返回:`string` 结果文本
|
|
352
354
|
|
|
353
|
-
|
|
355
|
+
将传入文本转成小写。
|
|
354
356
|
|
|
355
357
|
### UPPER
|
|
356
358
|
|
|
@@ -360,7 +362,7 @@
|
|
|
360
362
|
|
|
361
363
|
返回:`string` 结果文本
|
|
362
364
|
|
|
363
|
-
|
|
365
|
+
将传入文本转成大写。
|
|
364
366
|
|
|
365
367
|
### UPPERFIRST
|
|
366
368
|
|
|
@@ -370,7 +372,7 @@
|
|
|
370
372
|
|
|
371
373
|
返回:`string` 结果文本
|
|
372
374
|
|
|
373
|
-
|
|
375
|
+
将传入文本首字母转成大写。
|
|
374
376
|
|
|
375
377
|
### PADSTART
|
|
376
378
|
|
|
@@ -382,11 +384,11 @@
|
|
|
382
384
|
|
|
383
385
|
返回:`string` 结果文本
|
|
384
386
|
|
|
385
|
-
|
|
387
|
+
向前补齐文本长度。
|
|
386
388
|
|
|
387
|
-
示例 `PADSTART("6", 2, "0")
|
|
389
|
+
示例 `PADSTART("6", 2, "0")`,
|
|
388
390
|
|
|
389
|
-
返回 `06
|
|
391
|
+
返回 `06`。
|
|
390
392
|
|
|
391
393
|
### CAPITALIZE
|
|
392
394
|
|
|
@@ -396,11 +398,11 @@
|
|
|
396
398
|
|
|
397
399
|
返回:`string` 结果文本
|
|
398
400
|
|
|
399
|
-
|
|
401
|
+
将文本转成标题。
|
|
400
402
|
|
|
401
|
-
示例 `CAPITALIZE("star")
|
|
403
|
+
示例 `CAPITALIZE("star")`,
|
|
402
404
|
|
|
403
|
-
返回 `Star
|
|
405
|
+
返回 `Star`。
|
|
404
406
|
|
|
405
407
|
### ESCAPE
|
|
406
408
|
|
|
@@ -410,11 +412,11 @@
|
|
|
410
412
|
|
|
411
413
|
返回:`string` 结果文本
|
|
412
414
|
|
|
413
|
-
对文本进行 HTML
|
|
415
|
+
对文本进行 HTML 转义。
|
|
414
416
|
|
|
415
|
-
示例 `ESCAPE("<star>&")
|
|
417
|
+
示例 `ESCAPE("<star>&")`,
|
|
416
418
|
|
|
417
|
-
返回 `<start>&
|
|
419
|
+
返回 `<start>&`。
|
|
418
420
|
|
|
419
421
|
### TRUNCATE
|
|
420
422
|
|
|
@@ -425,11 +427,11 @@
|
|
|
425
427
|
|
|
426
428
|
返回:`string` 结果文本
|
|
427
429
|
|
|
428
|
-
|
|
430
|
+
对文本长度进行截断。
|
|
429
431
|
|
|
430
|
-
示例 `TRUNCATE("amis.baidu.com", 6)
|
|
432
|
+
示例 `TRUNCATE("amis.baidu.com", 6)`,
|
|
431
433
|
|
|
432
|
-
返回 `amis
|
|
434
|
+
返回 `amis...`。
|
|
433
435
|
|
|
434
436
|
### BEFORELAST
|
|
435
437
|
|
|
@@ -440,7 +442,7 @@
|
|
|
440
442
|
|
|
441
443
|
返回:`string` 判断结果
|
|
442
444
|
|
|
443
|
-
|
|
445
|
+
取在某个分隔符之前的所有字符串。
|
|
444
446
|
|
|
445
447
|
### SPLIT
|
|
446
448
|
|
|
@@ -451,11 +453,11 @@
|
|
|
451
453
|
|
|
452
454
|
返回:`Array<string>` 文本集
|
|
453
455
|
|
|
454
|
-
|
|
456
|
+
将文本根据指定片段分割成数组。
|
|
455
457
|
|
|
456
|
-
示例:`SPLIT("a,b,c", ",")
|
|
458
|
+
示例:`SPLIT("a,b,c", ",")`,
|
|
457
459
|
|
|
458
|
-
返回 `["a", "b", "c"]
|
|
460
|
+
返回 `["a", "b", "c"]`。
|
|
459
461
|
|
|
460
462
|
### TRIM
|
|
461
463
|
|
|
@@ -465,7 +467,7 @@
|
|
|
465
467
|
|
|
466
468
|
返回:`string` 处理后的文本
|
|
467
469
|
|
|
468
|
-
|
|
470
|
+
将文本去除前后空格。
|
|
469
471
|
|
|
470
472
|
### STRIPTAG
|
|
471
473
|
|
|
@@ -475,11 +477,11 @@
|
|
|
475
477
|
|
|
476
478
|
返回:`string` 处理后的文本
|
|
477
479
|
|
|
478
|
-
去除文本中的 HTML
|
|
480
|
+
去除文本中的 HTML 标签。
|
|
479
481
|
|
|
480
|
-
示例:`STRIPTAG("<b>amis</b>")
|
|
482
|
+
示例:`STRIPTAG("<b>amis</b>")`,
|
|
481
483
|
|
|
482
|
-
返回:`amis
|
|
484
|
+
返回:`amis`。
|
|
483
485
|
|
|
484
486
|
### LINEBREAK
|
|
485
487
|
|
|
@@ -489,11 +491,11 @@
|
|
|
489
491
|
|
|
490
492
|
返回:`string` 处理后的文本
|
|
491
493
|
|
|
492
|
-
将字符串中的换行转成 HTML `<br
|
|
494
|
+
将字符串中的换行转成 HTML `<br>`,用于简单换行的场景。
|
|
493
495
|
|
|
494
|
-
示例:`LINEBREAK("\n")
|
|
496
|
+
示例:`LINEBREAK("\n")`,
|
|
495
497
|
|
|
496
|
-
返回:`<br
|
|
498
|
+
返回:`<br/>`。
|
|
497
499
|
|
|
498
500
|
### STARTSWITH
|
|
499
501
|
|
|
@@ -504,7 +506,7 @@
|
|
|
504
506
|
|
|
505
507
|
返回:`string` 判断结果
|
|
506
508
|
|
|
507
|
-
判断字符串(text)是否以特定字符串(startString)开始,是则返回
|
|
509
|
+
判断字符串(text)是否以特定字符串(startString)开始,是则返回 true,否则返回 false。
|
|
508
510
|
|
|
509
511
|
### ENDSWITH
|
|
510
512
|
|
|
@@ -515,7 +517,7 @@
|
|
|
515
517
|
|
|
516
518
|
返回:`string` 判断结果
|
|
517
519
|
|
|
518
|
-
判断字符串(text)是否以特定字符串(endString)结束,是则返回
|
|
520
|
+
判断字符串(text)是否以特定字符串(endString)结束,是则返回 true,否则返回 false。
|
|
519
521
|
|
|
520
522
|
### CONTAINS
|
|
521
523
|
|
|
@@ -526,7 +528,7 @@
|
|
|
526
528
|
|
|
527
529
|
返回:`string` 判断结果
|
|
528
530
|
|
|
529
|
-
判断参数 1 中的文本是否包含参数 2
|
|
531
|
+
判断参数 1 中的文本是否包含参数 2 中的文本,是则返回 true,否则返回 false。
|
|
530
532
|
|
|
531
533
|
### REPLACE
|
|
532
534
|
|
|
@@ -550,7 +552,7 @@
|
|
|
550
552
|
|
|
551
553
|
返回:`number` 命中的位置
|
|
552
554
|
|
|
553
|
-
|
|
555
|
+
对文本进行搜索,返回命中的位置。
|
|
554
556
|
|
|
555
557
|
### MID
|
|
556
558
|
|
|
@@ -562,7 +564,7 @@
|
|
|
562
564
|
|
|
563
565
|
返回:`number` 命中的位置
|
|
564
566
|
|
|
565
|
-
|
|
567
|
+
返回文本字符串中从指定位置开始的特定数目的字符。
|
|
566
568
|
|
|
567
569
|
### BASENAME
|
|
568
570
|
|
|
@@ -572,11 +574,11 @@
|
|
|
572
574
|
|
|
573
575
|
返回:`string` 文件名
|
|
574
576
|
|
|
575
|
-
|
|
577
|
+
返回路径中的文件名。
|
|
576
578
|
|
|
577
|
-
示例:`/home/amis/a.json
|
|
579
|
+
示例:`/home/amis/a.json`,
|
|
578
580
|
|
|
579
|
-
返回:a.json
|
|
581
|
+
返回:a.json`。
|
|
580
582
|
|
|
581
583
|
## 日期函数
|
|
582
584
|
|
|
@@ -586,25 +588,25 @@
|
|
|
586
588
|
|
|
587
589
|
创建日期对象,可以通过特定格式的字符串,或者数值。
|
|
588
590
|
|
|
589
|
-
需要注意的是,其中月份的数值是从0
|
|
590
|
-
|
|
591
|
+
需要注意的是,其中月份的数值是从0开始的,
|
|
592
|
+
即如果是12月份,你应该传入数值11。
|
|
591
593
|
|
|
592
594
|
### TIMESTAMP
|
|
593
595
|
|
|
594
|
-
用法:`TIMESTAMP(date,
|
|
596
|
+
用法:`TIMESTAMP(date[, format = "X"])`
|
|
595
597
|
|
|
596
598
|
* `date:date` 日期对象
|
|
597
599
|
* `format:string` 时间戳格式,带毫秒传入 'x'。默认为 'X' 不带毫秒的。
|
|
598
600
|
|
|
599
601
|
返回:`number` 时间戳
|
|
600
602
|
|
|
601
|
-
|
|
603
|
+
返回时间的时间戳。
|
|
602
604
|
|
|
603
605
|
### TODAY
|
|
604
606
|
|
|
605
607
|
用法:`TODAY()`
|
|
606
608
|
|
|
607
|
-
|
|
609
|
+
返回今天的日期。
|
|
608
610
|
|
|
609
611
|
### NOW
|
|
610
612
|
|
|
@@ -621,11 +623,11 @@
|
|
|
621
623
|
|
|
622
624
|
返回:`number` 星期几的数字标识
|
|
623
625
|
|
|
624
|
-
|
|
626
|
+
获取日期的星期几。
|
|
625
627
|
|
|
626
|
-
|
|
628
|
+
示例
|
|
627
629
|
|
|
628
|
-
WEEKDAY('2023-02-27') 得到 1
|
|
630
|
+
WEEKDAY('2023-02-27') 得到 1。
|
|
629
631
|
|
|
630
632
|
### WEEK
|
|
631
633
|
|
|
@@ -636,11 +638,11 @@ WEEKDAY('2023-02-27') 得到 1
|
|
|
636
638
|
|
|
637
639
|
返回:`number` 星期几的数字标识
|
|
638
640
|
|
|
639
|
-
|
|
641
|
+
获取年份的星期,即第几周。
|
|
640
642
|
|
|
641
|
-
|
|
643
|
+
示例
|
|
642
644
|
|
|
643
|
-
WEEK('2023-03-05') 得到 10
|
|
645
|
+
WEEK('2023-03-05') 得到 10。
|
|
644
646
|
|
|
645
647
|
### DATETOSTR
|
|
646
648
|
|
|
@@ -651,14 +653,14 @@ WEEK('2023-03-05') 得到 10
|
|
|
651
653
|
|
|
652
654
|
返回:`string` 日期字符串
|
|
653
655
|
|
|
654
|
-
|
|
656
|
+
对日期、日期字符串、时间戳进行格式化。
|
|
655
657
|
|
|
656
|
-
|
|
658
|
+
示例
|
|
657
659
|
|
|
658
|
-
DATETOSTR('12/25/2022', 'YYYY-MM-DD') 得到 '2022.12.25'
|
|
659
|
-
DATETOSTR(1676563200, 'YYYY.MM.DD') 得到 '2023.02.17'
|
|
660
|
-
DATETOSTR(1676563200000, 'YYYY.MM.DD hh:mm:ss') 得到 '2023.02.17 12:00:00'
|
|
661
|
-
DATETOSTR(DATE('2021-12-21'), 'YYYY.MM.DD hh:mm:ss') 得到 '2021.12.21 08:00:00'
|
|
660
|
+
DATETOSTR('12/25/2022', 'YYYY-MM-DD') 得到 '2022.12.25',
|
|
661
|
+
DATETOSTR(1676563200, 'YYYY.MM.DD') 得到 '2023.02.17',
|
|
662
|
+
DATETOSTR(1676563200000, 'YYYY.MM.DD hh:mm:ss') 得到 '2023.02.17 12:00:00',
|
|
663
|
+
DATETOSTR(DATE('2021-12-21'), 'YYYY.MM.DD hh:mm:ss') 得到 '2021.12.21 08:00:00'。
|
|
662
664
|
|
|
663
665
|
### DATERANGESPLIT
|
|
664
666
|
|
|
@@ -671,16 +673,16 @@ DATETOSTR(DATE('2021-12-21'), 'YYYY.MM.DD hh:mm:ss') 得到 '2021.12.21 08:00:00
|
|
|
671
673
|
|
|
672
674
|
返回:`string` 日期字符串
|
|
673
675
|
|
|
674
|
-
|
|
676
|
+
获取日期范围字符串中的开始时间、结束时间。
|
|
675
677
|
|
|
676
678
|
示例:
|
|
677
679
|
|
|
678
|
-
DATERANGESPLIT('1676563200, 1676735999') 得到 [1676563200, 1676735999]
|
|
679
|
-
DATERANGESPLIT('1676563200, 1676735999', undefined , 'YYYY.MM.DD hh:mm:ss') 得到 [2023.02.17 12:00:00, 2023.02.18 11:59:59]
|
|
680
|
-
DATERANGESPLIT('1676563200, 1676735999', 0 , 'YYYY.MM.DD hh:mm:ss') 得到 '2023.02.17 12:00:00'
|
|
681
|
-
DATERANGESPLIT('1676563200, 1676735999', 'start' , 'YYYY.MM.DD hh:mm:ss') 得到 '2023.02.17 12:00:00'
|
|
682
|
-
DATERANGESPLIT('1676563200, 1676735999', 1 , 'YYYY.MM.DD hh:mm:ss') 得到 '2023.02.18 11:59:59'
|
|
683
|
-
DATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '2023.02.18 11:59:59'
|
|
680
|
+
DATERANGESPLIT('1676563200, 1676735999') 得到 [1676563200, 1676735999],
|
|
681
|
+
DATERANGESPLIT('1676563200, 1676735999', undefined , 'YYYY.MM.DD hh:mm:ss') 得到 [2023.02.17 12:00:00, 2023.02.18 11:59:59],
|
|
682
|
+
DATERANGESPLIT('1676563200, 1676735999', 0 , 'YYYY.MM.DD hh:mm:ss') 得到 '2023.02.17 12:00:00',
|
|
683
|
+
DATERANGESPLIT('1676563200, 1676735999', 'start' , 'YYYY.MM.DD hh:mm:ss') 得到 '2023.02.17 12:00:00',
|
|
684
|
+
DATERANGESPLIT('1676563200, 1676735999', 1 , 'YYYY.MM.DD hh:mm:ss') 得到 '2023.02.18 11:59:59',
|
|
685
|
+
DATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '2023.02.18 11:59:59'。
|
|
684
686
|
|
|
685
687
|
### STARTOF
|
|
686
688
|
|
|
@@ -692,7 +694,7 @@ DATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '
|
|
|
692
694
|
|
|
693
695
|
返回:`date` 新的日期对象
|
|
694
696
|
|
|
695
|
-
|
|
697
|
+
返回日期的指定范围的开端。
|
|
696
698
|
|
|
697
699
|
### ENDOF
|
|
698
700
|
|
|
@@ -704,7 +706,7 @@ DATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '
|
|
|
704
706
|
|
|
705
707
|
返回:`date` 新的日期对象
|
|
706
708
|
|
|
707
|
-
|
|
709
|
+
返回日期的指定范围的末尾。
|
|
708
710
|
|
|
709
711
|
### YEAR
|
|
710
712
|
|
|
@@ -714,7 +716,7 @@ DATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '
|
|
|
714
716
|
|
|
715
717
|
返回:`number` 数值
|
|
716
718
|
|
|
717
|
-
|
|
719
|
+
返回日期的年份。
|
|
718
720
|
|
|
719
721
|
### MONTH
|
|
720
722
|
|
|
@@ -734,7 +736,7 @@ DATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '
|
|
|
734
736
|
|
|
735
737
|
返回:`number` 数值
|
|
736
738
|
|
|
737
|
-
|
|
739
|
+
返回日期的天。
|
|
738
740
|
|
|
739
741
|
### HOUR
|
|
740
742
|
|
|
@@ -744,7 +746,7 @@ DATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '
|
|
|
744
746
|
|
|
745
747
|
返回:`number` 数值
|
|
746
748
|
|
|
747
|
-
|
|
749
|
+
返回日期的小时。
|
|
748
750
|
|
|
749
751
|
### MINUTE
|
|
750
752
|
|
|
@@ -754,7 +756,7 @@ DATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '
|
|
|
754
756
|
|
|
755
757
|
返回:`number` 数值
|
|
756
758
|
|
|
757
|
-
|
|
759
|
+
返回日期的分。
|
|
758
760
|
|
|
759
761
|
### SECOND
|
|
760
762
|
|
|
@@ -764,7 +766,7 @@ DATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '
|
|
|
764
766
|
|
|
765
767
|
返回:`number` 数值
|
|
766
768
|
|
|
767
|
-
|
|
769
|
+
返回日期的秒。
|
|
768
770
|
|
|
769
771
|
### YEARS
|
|
770
772
|
|
|
@@ -775,7 +777,7 @@ DATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '
|
|
|
775
777
|
|
|
776
778
|
返回:`number` 数值
|
|
777
779
|
|
|
778
|
-
|
|
780
|
+
返回两个日期相差多少年。
|
|
779
781
|
|
|
780
782
|
### MINUTES
|
|
781
783
|
|
|
@@ -786,7 +788,7 @@ DATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '
|
|
|
786
788
|
|
|
787
789
|
返回:`number` 数值
|
|
788
790
|
|
|
789
|
-
|
|
791
|
+
返回两个日期相差多少分钟。
|
|
790
792
|
|
|
791
793
|
### DAYS
|
|
792
794
|
|
|
@@ -797,7 +799,7 @@ DATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '
|
|
|
797
799
|
|
|
798
800
|
返回:`number` 数值
|
|
799
801
|
|
|
800
|
-
|
|
802
|
+
返回两个日期相差多少天。
|
|
801
803
|
|
|
802
804
|
### HOURS
|
|
803
805
|
|
|
@@ -808,7 +810,7 @@ DATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '
|
|
|
808
810
|
|
|
809
811
|
返回:`number` 数值
|
|
810
812
|
|
|
811
|
-
|
|
813
|
+
返回两个日期相差多少小时。
|
|
812
814
|
|
|
813
815
|
### DATEMODIFY
|
|
814
816
|
|
|
@@ -820,11 +822,11 @@ DATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '
|
|
|
820
822
|
|
|
821
823
|
返回:`date` 日期对象
|
|
822
824
|
|
|
823
|
-
|
|
825
|
+
修改日期,对日期进行加减天、月份、年等操作。
|
|
824
826
|
|
|
825
827
|
示例:
|
|
826
828
|
|
|
827
|
-
DATEMODIFY(A, -2, 'month')
|
|
829
|
+
DATEMODIFY(A, -2, 'month'),
|
|
828
830
|
|
|
829
831
|
对日期 A 进行往前减2月的操作。
|
|
830
832
|
|
|
@@ -851,7 +853,7 @@ DATEMODIFY(A, -2, 'month')
|
|
|
851
853
|
|
|
852
854
|
返回:`boolean` 判断结果
|
|
853
855
|
|
|
854
|
-
|
|
856
|
+
判断两个日期,是否第一个日期在第二个日期的前面,是则返回 true,否则返回 false。
|
|
855
857
|
|
|
856
858
|
### ISAFTER
|
|
857
859
|
|
|
@@ -863,7 +865,7 @@ DATEMODIFY(A, -2, 'month')
|
|
|
863
865
|
|
|
864
866
|
返回:`boolean` 判断结果
|
|
865
867
|
|
|
866
|
-
|
|
868
|
+
判断两个日期,是否第一个日期在第二个日期的后面,是则返回 true,否则返回 false。
|
|
867
869
|
|
|
868
870
|
### BETWEENRANGE
|
|
869
871
|
|
|
@@ -876,9 +878,9 @@ DATEMODIFY(A, -2, 'month')
|
|
|
876
878
|
|
|
877
879
|
返回:`boolean` 判断结果
|
|
878
880
|
|
|
879
|
-
|
|
881
|
+
判断日期是否在指定范围内,是则返回 true,否则返回 false。
|
|
880
882
|
|
|
881
|
-
示例:BETWEENRANGE('2021/12/6', ['2021/12/5','2021/12/7'])
|
|
883
|
+
示例:BETWEENRANGE('2021/12/6', ['2021/12/5','2021/12/7'])。
|
|
882
884
|
|
|
883
885
|
### ISSAMEORBEFORE
|
|
884
886
|
|
|
@@ -890,7 +892,7 @@ DATEMODIFY(A, -2, 'month')
|
|
|
890
892
|
|
|
891
893
|
返回:`boolean` 判断结果
|
|
892
894
|
|
|
893
|
-
|
|
895
|
+
判断两个日期,是否第一个日期在第二个日期的前面或者相等,是则返回 true,否则返回 false。
|
|
894
896
|
|
|
895
897
|
### ISSAMEORAFTER
|
|
896
898
|
|
|
@@ -902,7 +904,7 @@ DATEMODIFY(A, -2, 'month')
|
|
|
902
904
|
|
|
903
905
|
返回:`boolean` 判断结果
|
|
904
906
|
|
|
905
|
-
|
|
907
|
+
判断两个日期,是否第一个日期在第二个日期的后面或者相等,是则返回 true,否则返回 false。
|
|
906
908
|
|
|
907
909
|
## 数组
|
|
908
910
|
|
|
@@ -914,7 +916,7 @@ DATEMODIFY(A, -2, 'month')
|
|
|
914
916
|
|
|
915
917
|
返回:`boolean` 结果
|
|
916
918
|
|
|
917
|
-
|
|
919
|
+
返回数组的长度。
|
|
918
920
|
|
|
919
921
|
### ARRAYMAP
|
|
920
922
|
|
|
@@ -953,7 +955,7 @@ DATEMODIFY(A, -2, 'month')
|
|
|
953
955
|
|
|
954
956
|
示例:
|
|
955
957
|
|
|
956
|
-
ARRAYFINDINDEX([0, 2, false], item => item === 2) 得到 1
|
|
958
|
+
ARRAYFINDINDEX([0, 2, false], item => item === 2) 得到 1。
|
|
957
959
|
|
|
958
960
|
### ARRAYFIND
|
|
959
961
|
|
|
@@ -969,7 +971,7 @@ ARRAYFINDINDEX([0, 2, false], item => item === 2) 得到 1
|
|
|
969
971
|
|
|
970
972
|
示例:
|
|
971
973
|
|
|
972
|
-
ARRAYFIND([0, 2, false], item => item === 2) 得到 2
|
|
974
|
+
ARRAYFIND([0, 2, false], item => item === 2) 得到 2。
|
|
973
975
|
|
|
974
976
|
### ARRAYSOME
|
|
975
977
|
|
|
@@ -981,11 +983,11 @@ ARRAYFIND([0, 2, false], item => item === 2) 得到 2
|
|
|
981
983
|
返回:`boolean` 结果
|
|
982
984
|
|
|
983
985
|
数据做数据遍历判断,需要搭配箭头函数一起使用,注意箭头函数只支持单表达式用法。
|
|
984
|
-
判断第二个箭头函数是否存在返回为 true
|
|
986
|
+
判断第二个箭头函数是否存在返回为 true 的成员,是则返回 true,否则返回 false。
|
|
985
987
|
|
|
986
988
|
示例:
|
|
987
989
|
|
|
988
|
-
ARRAYSOME([0, 2, false], item => item === 2) 得到 true
|
|
990
|
+
ARRAYSOME([0, 2, false], item => item === 2) 得到 true。
|
|
989
991
|
|
|
990
992
|
### ARRAYEVERY
|
|
991
993
|
|
|
@@ -997,7 +999,7 @@ ARRAYSOME([0, 2, false], item => item === 2) 得到 true
|
|
|
997
999
|
返回:`boolean` 结果
|
|
998
1000
|
|
|
999
1001
|
数据做数据遍历判断,需要搭配箭头函数一起使用,注意箭头函数只支持单表达式用法。
|
|
1000
|
-
判断第二个箭头函数返回是否都为 true。
|
|
1002
|
+
判断第二个箭头函数返回是否都为 true,是则返回 true,否则返回 false。
|
|
1001
1003
|
|
|
1002
1004
|
示例:
|
|
1003
1005
|
|
|
@@ -1012,11 +1014,11 @@ ARRAYEVERY([0, 2, false], item => item === 2) 得到 false
|
|
|
1012
1014
|
|
|
1013
1015
|
返回:`any` 结果
|
|
1014
1016
|
|
|
1015
|
-
|
|
1017
|
+
判断数据中是否存在指定元素。
|
|
1016
1018
|
|
|
1017
1019
|
示例:
|
|
1018
1020
|
|
|
1019
|
-
ARRAYINCLUDES([0, 2, false], 2) 得到 true
|
|
1021
|
+
ARRAYINCLUDES([0, 2, false], 2) 得到 true。
|
|
1020
1022
|
|
|
1021
1023
|
### COMPACT
|
|
1022
1024
|
|
|
@@ -1026,11 +1028,11 @@ ARRAYINCLUDES([0, 2, false], 2) 得到 true
|
|
|
1026
1028
|
|
|
1027
1029
|
返回:`Array<any>` 结果
|
|
1028
1030
|
|
|
1029
|
-
数组过滤掉 false、null、0 和 ""
|
|
1031
|
+
数组过滤掉 false、null、0 和 ""。
|
|
1030
1032
|
|
|
1031
1033
|
示例:
|
|
1032
1034
|
|
|
1033
|
-
COMPACT([0, 1, false, 2, '', 3]) 得到 [1, 2, 3]
|
|
1035
|
+
COMPACT([0, 1, false, 2, '', 3]) 得到 [1, 2, 3]。
|
|
1034
1036
|
|
|
1035
1037
|
### JOIN
|
|
1036
1038
|
|
|
@@ -1041,11 +1043,11 @@ COMPACT([0, 1, false, 2, '', 3]) 得到 [1, 2, 3]
|
|
|
1041
1043
|
|
|
1042
1044
|
返回:`String` 结果
|
|
1043
1045
|
|
|
1044
|
-
|
|
1046
|
+
数组转成字符串。
|
|
1045
1047
|
|
|
1046
1048
|
示例:
|
|
1047
1049
|
|
|
1048
|
-
JOIN(['a', 'b', 'c'], '=') 得到 'a=b=c'
|
|
1050
|
+
JOIN(['a', 'b', 'c'], '=') 得到 'a=b=c'。
|
|
1049
1051
|
|
|
1050
1052
|
### CONCAT
|
|
1051
1053
|
|
|
@@ -1055,11 +1057,11 @@ JOIN(['a', 'b', 'c'], '=') 得到 'a=b=c'
|
|
|
1055
1057
|
|
|
1056
1058
|
返回:`Array<any>` 结果
|
|
1057
1059
|
|
|
1058
|
-
|
|
1060
|
+
数组合并。
|
|
1059
1061
|
|
|
1060
1062
|
示例:
|
|
1061
1063
|
|
|
1062
|
-
CONCAT(['a', 'b', 'c'], ['1'], ['3']) 得到 ['a', 'b', 'c', '1', '3']
|
|
1064
|
+
CONCAT(['a', 'b', 'c'], ['1'], ['3']) 得到 ['a', 'b', 'c', '1', '3']。
|
|
1063
1065
|
|
|
1064
1066
|
### UNIQ
|
|
1065
1067
|
|
|
@@ -1070,11 +1072,11 @@ CONCAT(['a', 'b', 'c'], ['1'], ['3']) 得到 ['a', 'b', 'c', '1', '3']
|
|
|
1070
1072
|
|
|
1071
1073
|
返回:`Array<any>` 结果
|
|
1072
1074
|
|
|
1073
|
-
数组去重,第二个参数「field
|
|
1075
|
+
数组去重,第二个参数「field」,可指定根据该字段去重。
|
|
1074
1076
|
|
|
1075
1077
|
示例:
|
|
1076
1078
|
|
|
1077
|
-
UNIQ([{a: '1'}, {b: '2'}, {a: '1'}], 'id')
|
|
1079
|
+
UNIQ([{a: '1'}, {b: '2'}, {a: '1'}], 'id')。
|
|
1078
1080
|
|
|
1079
1081
|
## 编码
|
|
1080
1082
|
|
|
@@ -1086,11 +1088,11 @@ UNIQ([{a: '1'}, {b: '2'}, {a: '1'}], 'id')
|
|
|
1086
1088
|
|
|
1087
1089
|
返回:`string` 结果
|
|
1088
1090
|
|
|
1089
|
-
将JS对象转换成JSON
|
|
1091
|
+
将JS对象转换成JSON字符串。
|
|
1090
1092
|
|
|
1091
1093
|
示例:
|
|
1092
1094
|
|
|
1093
|
-
ENCODEJSON({name: 'amis'}) 得到 '{"name":"amis"}'
|
|
1095
|
+
ENCODEJSON({name: 'amis'}) 得到 '{"name":"amis"}'。
|
|
1094
1096
|
|
|
1095
1097
|
### DECODEJSON
|
|
1096
1098
|
|
|
@@ -1100,11 +1102,11 @@ ENCODEJSON({name: 'amis'}) 得到 '{"name":"amis"}'
|
|
|
1100
1102
|
|
|
1101
1103
|
返回:`object` 结果
|
|
1102
1104
|
|
|
1103
|
-
解析JSON编码数据,返回JS
|
|
1105
|
+
解析JSON编码数据,返回JS对象。
|
|
1104
1106
|
|
|
1105
1107
|
示例:
|
|
1106
1108
|
|
|
1107
|
-
DECODEJSON('{\"name\": "amis"}') 得到 {name: 'amis'}
|
|
1109
|
+
DECODEJSON('{\"name\": "amis"}') 得到 {name: 'amis'}。
|
|
1108
1110
|
|
|
1109
1111
|
## 其他
|
|
1110
1112
|
|
|
@@ -1118,15 +1120,15 @@ DECODEJSON('{\"name\": "amis"}') 得到 {name: 'amis'}
|
|
|
1118
1120
|
|
|
1119
1121
|
返回:`any` 结果
|
|
1120
1122
|
|
|
1121
|
-
根据对象或者数组的path路径获取值。 如果解析 value 是 undefined 会以 defaultValue
|
|
1123
|
+
根据对象或者数组的path路径获取值。 如果解析 value 是 undefined 会以 defaultValue 取代。
|
|
1122
1124
|
|
|
1123
1125
|
示例:
|
|
1124
1126
|
|
|
1125
|
-
GET([0, 2, {name: 'amis', age: 18}], 1) 得到 2
|
|
1126
|
-
GET([0, 2, {name: 'amis', age: 18}], '2.name') 得到 'amis'
|
|
1127
|
-
GET({arr: [{name: 'amis', age: 18}]}, 'arr[0].name') 得到 'amis'
|
|
1128
|
-
GET({arr: [{name: 'amis', age: 18}]}, 'arr.0.name') 得到 'amis'
|
|
1129
|
-
GET({arr: [{name: 'amis', age: 18}]}, 'arr.1.name', 'not-found') 得到 'not-found'
|
|
1127
|
+
GET([0, 2, {name: 'amis', age: 18}], 1) 得到 2,
|
|
1128
|
+
GET([0, 2, {name: 'amis', age: 18}], '2.name') 得到 'amis',
|
|
1129
|
+
GET({arr: [{name: 'amis', age: 18}]}, 'arr[0].name') 得到 'amis',
|
|
1130
|
+
GET({arr: [{name: 'amis', age: 18}]}, 'arr.0.name') 得到 'amis',
|
|
1131
|
+
GET({arr: [{name: 'amis', age: 18}]}, 'arr.1.name', 'not-found') 得到 'not-found'。
|
|
1130
1132
|
|
|
1131
1133
|
### ISTYPE
|
|
1132
1134
|
|