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/lib/evalutor.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* amis-formula v3.
|
|
2
|
+
* amis-formula v3.2.0
|
|
3
3
|
* Copyright 2021-2023 fex
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -416,14 +416,12 @@ var Evaluator = /** @class */ (function () {
|
|
|
416
416
|
return result;
|
|
417
417
|
};
|
|
418
418
|
/**
|
|
419
|
-
*
|
|
419
|
+
* 如果满足条件condition,则返回consequent,否则返回alternate,支持多层嵌套IF函数。
|
|
420
420
|
*
|
|
421
|
-
*
|
|
422
|
-
*
|
|
423
|
-
* 也可以用表达式如:A ? B : C
|
|
421
|
+
* 等价于直接用JS表达式如:condition ? consequent : alternate。
|
|
424
422
|
*
|
|
425
423
|
* @example IF(condition, consequent, alternate)
|
|
426
|
-
* @param {expression} condition
|
|
424
|
+
* @param {expression} condition 条件表达式。例如:语文成绩>80
|
|
427
425
|
* @param {any} consequent 条件判断通过的返回结果
|
|
428
426
|
* @param {any} alternate 条件判断不通过的返回结果
|
|
429
427
|
* @namespace 逻辑函数
|
|
@@ -434,16 +432,16 @@ var Evaluator = /** @class */ (function () {
|
|
|
434
432
|
return condition() ? trueValue() : falseValue();
|
|
435
433
|
};
|
|
436
434
|
/**
|
|
437
|
-
* 条件全部符合,返回 true,否则返回 false
|
|
435
|
+
* 条件全部符合,返回 true,否则返回 false。
|
|
438
436
|
*
|
|
439
|
-
* 示例:AND(语文成绩>80, 数学成绩>80)
|
|
437
|
+
* 示例:AND(语文成绩>80, 数学成绩>80),
|
|
440
438
|
*
|
|
441
|
-
* 语文成绩和数学成绩都大于 80,则返回 true,否则返回 false
|
|
439
|
+
* 语文成绩和数学成绩都大于 80,则返回 true,否则返回 false,
|
|
442
440
|
*
|
|
443
|
-
*
|
|
441
|
+
* 等价于直接用JS表达式如:语文成绩>80 && 数学成绩>80。
|
|
444
442
|
*
|
|
445
443
|
* @example AND(expression1, expression2, ...expressionN)
|
|
446
|
-
* @param {...expression} conditions
|
|
444
|
+
* @param {...expression} conditions 条件表达式,多个用逗号隔开。例如:语文成绩>80, 数学成绩>80
|
|
447
445
|
* @namespace 逻辑函数
|
|
448
446
|
*
|
|
449
447
|
* @returns {boolean}
|
|
@@ -456,16 +454,16 @@ var Evaluator = /** @class */ (function () {
|
|
|
456
454
|
return condtions.every(function (c) { return c(); });
|
|
457
455
|
};
|
|
458
456
|
/**
|
|
459
|
-
* 条件任意一个满足条件,返回 true,否则返回 false
|
|
457
|
+
* 条件任意一个满足条件,返回 true,否则返回 false。
|
|
460
458
|
*
|
|
461
|
-
* 示例:OR(语文成绩>80, 数学成绩>80)
|
|
459
|
+
* 示例:OR(语文成绩>80, 数学成绩>80),
|
|
462
460
|
*
|
|
463
|
-
* 语文成绩和数学成绩任意一个大于 80,则返回 true,否则返回 false
|
|
461
|
+
* 语文成绩和数学成绩任意一个大于 80,则返回 true,否则返回 false,
|
|
464
462
|
*
|
|
465
|
-
*
|
|
463
|
+
* 等价于直接用JS表达式如:语文成绩>80 || 数学成绩>80。
|
|
466
464
|
*
|
|
467
465
|
* @example OR(expression1, expression2, ...expressionN)
|
|
468
|
-
* @param {...expression} conditions
|
|
466
|
+
* @param {...expression} conditions 条件表达式,多个用逗号隔开。例如:语文成绩>80, 数学成绩>80
|
|
469
467
|
* @namespace 逻辑函数
|
|
470
468
|
*
|
|
471
469
|
* @returns {boolean}
|
|
@@ -480,9 +478,12 @@ var Evaluator = /** @class */ (function () {
|
|
|
480
478
|
/**
|
|
481
479
|
* 异或处理,多个表达式组中存在奇数个真时认为真。
|
|
482
480
|
*
|
|
483
|
-
*
|
|
484
|
-
*
|
|
485
|
-
*
|
|
481
|
+
* 示例:XOR(语文成绩 > 80, 数学成绩 > 80, 英语成绩 > 80)
|
|
482
|
+
*
|
|
483
|
+
* 三门成绩中有一门或者三门大于 80,则返回 true,否则返回 false。
|
|
484
|
+
*
|
|
485
|
+
* @example XOR(condition1, condition2, ...expressionN)
|
|
486
|
+
* @param {...expression} condition 条件表达式,多个用逗号隔开。例如:语文成绩>80, 数学成绩>80
|
|
486
487
|
* @namespace 逻辑函数
|
|
487
488
|
*
|
|
488
489
|
* @returns {boolean}
|
|
@@ -497,12 +498,13 @@ var Evaluator = /** @class */ (function () {
|
|
|
497
498
|
/**
|
|
498
499
|
* 判断函数集合,相当于多个 else if 合并成一个。
|
|
499
500
|
*
|
|
500
|
-
* 示例:IFS(语文成绩 > 80, "优秀", 语文成绩 > 60, "良", "继续努力")
|
|
501
|
+
* 示例:IFS(语文成绩 > 80, "优秀", 语文成绩 > 60, "良", "继续努力"),
|
|
501
502
|
*
|
|
502
503
|
* 如果语文成绩大于 80,则返回优秀,否则判断大于 60 分,则返回良,否则返回继续努力。
|
|
503
504
|
*
|
|
504
505
|
* @example IFS(condition1, result1, condition2, result2,...conditionN, resultN)
|
|
505
|
-
* @param {...
|
|
506
|
+
* @param {...expression} condition 条件表达式
|
|
507
|
+
* @param {...any} result 返回值
|
|
506
508
|
* @namespace 逻辑函数
|
|
507
509
|
* @returns {any} 第一个满足条件的结果,没有命中的返回 false。
|
|
508
510
|
*/
|
|
@@ -524,7 +526,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
524
526
|
return;
|
|
525
527
|
};
|
|
526
528
|
/**
|
|
527
|
-
*
|
|
529
|
+
* 返回传入数字的绝对值。
|
|
528
530
|
*
|
|
529
531
|
* @example ABS(num)
|
|
530
532
|
* @param {number} num - 数值
|
|
@@ -537,7 +539,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
537
539
|
return Math.abs(a);
|
|
538
540
|
};
|
|
539
541
|
/**
|
|
540
|
-
*
|
|
542
|
+
* 获取最大值,如果只有一个参数且是数组,则计算这个数组内的值。
|
|
541
543
|
*
|
|
542
544
|
* @example MAX(num1, num2, ...numN)
|
|
543
545
|
* @param {...number} num - 数值
|
|
@@ -555,7 +557,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
555
557
|
return Math.max.apply(Math, arr.map(function (item) { return _this.formatNumber(item); }));
|
|
556
558
|
};
|
|
557
559
|
/**
|
|
558
|
-
*
|
|
560
|
+
* 获取最小值,如果只有一个参数且是数组,则计算这个数组内的值。
|
|
559
561
|
*
|
|
560
562
|
* @example MIN(num1, num2, ...numN)
|
|
561
563
|
* @param {...number} num - 数值
|
|
@@ -573,7 +575,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
573
575
|
return Math.min.apply(Math, arr.map(function (item) { return _this.formatNumber(item); }));
|
|
574
576
|
};
|
|
575
577
|
/**
|
|
576
|
-
*
|
|
578
|
+
* 求和,如果只有一个参数且是数组,则计算这个数组内的值。
|
|
577
579
|
*
|
|
578
580
|
* @example SUM(num1, num2, ...numN)
|
|
579
581
|
* @param {...number} num - 数值
|
|
@@ -591,7 +593,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
591
593
|
return arr.reduce(function (sum, a) { return sum + _this.formatNumber(a) || 0; }, 0);
|
|
592
594
|
};
|
|
593
595
|
/**
|
|
594
|
-
*
|
|
596
|
+
* 将数值向下取整为最接近的整数。
|
|
595
597
|
*
|
|
596
598
|
* @example INT(num)
|
|
597
599
|
* @param {number} num - 数值
|
|
@@ -603,7 +605,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
603
605
|
return Math.floor(this.formatNumber(n));
|
|
604
606
|
};
|
|
605
607
|
/**
|
|
606
|
-
* 返回两数相除的余数,参数 number 是被除数,divisor
|
|
608
|
+
* 返回两数相除的余数,参数 number 是被除数,divisor 是除数。
|
|
607
609
|
*
|
|
608
610
|
* @example MOD(num, divisor)
|
|
609
611
|
* @param {number} num - 被除数
|
|
@@ -616,7 +618,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
616
618
|
return this.formatNumber(a) % this.formatNumber(b);
|
|
617
619
|
};
|
|
618
620
|
/**
|
|
619
|
-
* 圆周率 3.1415
|
|
621
|
+
* 圆周率 3.1415...。
|
|
620
622
|
*
|
|
621
623
|
* @example PI()
|
|
622
624
|
* @namespace 数学函数
|
|
@@ -631,7 +633,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
631
633
|
*
|
|
632
634
|
* @example ROUND(num[, numDigits = 2])
|
|
633
635
|
* @param {number} num - 要处理的数字
|
|
634
|
-
* @param {number} numDigits -
|
|
636
|
+
* @param {number} numDigits - 小数位数,默认为2
|
|
635
637
|
* @namespace 数学函数
|
|
636
638
|
*
|
|
637
639
|
* @returns {number} 传入数值四舍五入后的结果
|
|
@@ -652,7 +654,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
652
654
|
*
|
|
653
655
|
* @example FLOOR(num[, numDigits=2])
|
|
654
656
|
* @param {number} num - 要处理的数字
|
|
655
|
-
* @param {number} numDigits -
|
|
657
|
+
* @param {number} numDigits - 小数位数,默认为2
|
|
656
658
|
* @namespace 数学函数
|
|
657
659
|
*
|
|
658
660
|
* @returns {number} 传入数值向下取整后的结果
|
|
@@ -673,7 +675,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
673
675
|
*
|
|
674
676
|
* @example CEIL(num[, numDigits=2])
|
|
675
677
|
* @param {number} num - 要处理的数字
|
|
676
|
-
* @param {number} numDigits -
|
|
678
|
+
* @param {number} numDigits - 小数位数,默认为2
|
|
677
679
|
* @namespace 数学函数
|
|
678
680
|
*
|
|
679
681
|
* @returns {number} 传入数值向上取整后的结果
|
|
@@ -702,7 +704,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
702
704
|
return Math.sqrt(this.formatNumber(n));
|
|
703
705
|
};
|
|
704
706
|
/**
|
|
705
|
-
*
|
|
707
|
+
* 返回所有参数的平均值,如果只有一个参数且是数组,则计算这个数组内的值。
|
|
706
708
|
*
|
|
707
709
|
* @example AVG(num1, num2, ...numN)
|
|
708
710
|
* @param {...number} num - 要处理的数字
|
|
@@ -720,7 +722,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
720
722
|
return (this.fnSUM.apply(this, arr.map(function (item) { return _this.formatNumber(item); })) / arr.length);
|
|
721
723
|
};
|
|
722
724
|
/**
|
|
723
|
-
*
|
|
725
|
+
* 返回数据点与数据均值点之差(数据偏差)的平方和,如果只有一个参数且是数组,则计算这个数组内的值。
|
|
724
726
|
*
|
|
725
727
|
* @example DEVSQ(num1, num2, ...numN)
|
|
726
728
|
* @param {...number} num - 要处理的数字
|
|
@@ -759,7 +761,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
759
761
|
return result;
|
|
760
762
|
};
|
|
761
763
|
/**
|
|
762
|
-
*
|
|
764
|
+
* 数据点到其算术平均值的绝对偏差的平均值。
|
|
763
765
|
*
|
|
764
766
|
* @example AVEDEV(num1, num2, ...numN)
|
|
765
767
|
* @param {...number} num - 要处理的数字
|
|
@@ -801,7 +803,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
801
803
|
return result / nums.length;
|
|
802
804
|
};
|
|
803
805
|
/**
|
|
804
|
-
*
|
|
806
|
+
* 数据点的调和平均值,如果只有一个参数且是数组,则计算这个数组内的值。
|
|
805
807
|
*
|
|
806
808
|
* @example HARMEAN(num1, num2, ...numN)
|
|
807
809
|
* @param {...number} num - 要处理的数字
|
|
@@ -841,7 +843,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
841
843
|
return nums.length / den;
|
|
842
844
|
};
|
|
843
845
|
/**
|
|
844
|
-
* 数据集中第 k
|
|
846
|
+
* 数据集中第 k 个最大值。
|
|
845
847
|
*
|
|
846
848
|
* @example LARGE(array, k)
|
|
847
849
|
* @param {array} nums - 要处理的数字
|
|
@@ -864,7 +866,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
864
866
|
})[k - 1];
|
|
865
867
|
};
|
|
866
868
|
/**
|
|
867
|
-
*
|
|
869
|
+
* 将数值转为中文大写金额。
|
|
868
870
|
*
|
|
869
871
|
* @example UPPERMONEY(num)
|
|
870
872
|
* @param {number} num - 要处理的数字
|
|
@@ -910,9 +912,9 @@ var Evaluator = /** @class */ (function () {
|
|
|
910
912
|
/**
|
|
911
913
|
* 返回大于等于 0 且小于 1 的均匀分布随机实数。每一次触发计算都会变化。
|
|
912
914
|
*
|
|
913
|
-
* 示例:`RAND()*100
|
|
915
|
+
* 示例:`RAND()*100`,
|
|
914
916
|
*
|
|
915
|
-
* 返回 0-100
|
|
917
|
+
* 返回 0-100 之间的随机数。
|
|
916
918
|
*
|
|
917
919
|
* @example RAND()
|
|
918
920
|
* @namespace 数学函数
|
|
@@ -923,7 +925,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
923
925
|
return Math.random();
|
|
924
926
|
};
|
|
925
927
|
/**
|
|
926
|
-
*
|
|
928
|
+
* 取数据最后一个。
|
|
927
929
|
*
|
|
928
930
|
* @example LAST(array)
|
|
929
931
|
* @param {...number} arr - 要处理的数组
|
|
@@ -970,7 +972,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
970
972
|
return text.substring(text.length - len, text.length);
|
|
971
973
|
};
|
|
972
974
|
/**
|
|
973
|
-
*
|
|
975
|
+
* 计算文本的长度。
|
|
974
976
|
*
|
|
975
977
|
* @example LEN(text)
|
|
976
978
|
* @param {string} text - 要处理的文本
|
|
@@ -983,7 +985,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
983
985
|
return text === null || text === void 0 ? void 0 : text.length;
|
|
984
986
|
};
|
|
985
987
|
/**
|
|
986
|
-
*
|
|
988
|
+
* 计算文本集合中所有文本的长度。
|
|
987
989
|
*
|
|
988
990
|
* @example LENGTH(textArr)
|
|
989
991
|
* @param {string[]} textArr - 要处理的文本集合
|
|
@@ -999,7 +1001,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
999
1001
|
return this.fnLEN.call(this, args);
|
|
1000
1002
|
};
|
|
1001
1003
|
/**
|
|
1002
|
-
*
|
|
1004
|
+
* 判断文本是否为空。
|
|
1003
1005
|
*
|
|
1004
1006
|
* @example ISEMPTY(text)
|
|
1005
1007
|
* @param {string} text - 要处理的文本
|
|
@@ -1011,7 +1013,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
1011
1013
|
return !text || !String(text).trim();
|
|
1012
1014
|
};
|
|
1013
1015
|
/**
|
|
1014
|
-
*
|
|
1016
|
+
* 将多个传入值连接成文本。
|
|
1015
1017
|
*
|
|
1016
1018
|
* @example CONCATENATE(text1, text2, ...textN)
|
|
1017
1019
|
* @param {...string} text - 文本集合
|
|
@@ -1029,7 +1031,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
1029
1031
|
/**
|
|
1030
1032
|
* 返回计算机字符集的数字代码所对应的字符。
|
|
1031
1033
|
*
|
|
1032
|
-
*
|
|
1034
|
+
* 示例:`CHAR(97)` 等价于 "a"。
|
|
1033
1035
|
*
|
|
1034
1036
|
* @example CHAR(code)
|
|
1035
1037
|
* @param {number} code - 编码值
|
|
@@ -1041,7 +1043,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
1041
1043
|
return String.fromCharCode(code);
|
|
1042
1044
|
};
|
|
1043
1045
|
/**
|
|
1044
|
-
*
|
|
1046
|
+
* 将传入文本转成小写。
|
|
1045
1047
|
*
|
|
1046
1048
|
* @example LOWER(text)
|
|
1047
1049
|
* @param {string} text - 文本
|
|
@@ -1054,7 +1056,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
1054
1056
|
return text.toLowerCase();
|
|
1055
1057
|
};
|
|
1056
1058
|
/**
|
|
1057
|
-
*
|
|
1059
|
+
* 将传入文本转成大写。
|
|
1058
1060
|
*
|
|
1059
1061
|
* @example UPPER(text)
|
|
1060
1062
|
* @param {string} text - 文本
|
|
@@ -1067,7 +1069,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
1067
1069
|
return text.toUpperCase();
|
|
1068
1070
|
};
|
|
1069
1071
|
/**
|
|
1070
|
-
*
|
|
1072
|
+
* 将传入文本首字母转成大写。
|
|
1071
1073
|
*
|
|
1072
1074
|
* @example UPPERFIRST(text)
|
|
1073
1075
|
* @param {string} text - 文本
|
|
@@ -1080,11 +1082,11 @@ var Evaluator = /** @class */ (function () {
|
|
|
1080
1082
|
return upperFirst__default["default"](text);
|
|
1081
1083
|
};
|
|
1082
1084
|
/**
|
|
1083
|
-
*
|
|
1085
|
+
* 向前补齐文本长度。
|
|
1084
1086
|
*
|
|
1085
|
-
* 示例 `PADSTART("6", 2, "0")
|
|
1087
|
+
* 示例 `PADSTART("6", 2, "0")`,
|
|
1086
1088
|
*
|
|
1087
|
-
* 返回 `06
|
|
1089
|
+
* 返回 `06`。
|
|
1088
1090
|
*
|
|
1089
1091
|
* @example PADSTART(text)
|
|
1090
1092
|
* @param {string} text - 文本
|
|
@@ -1099,11 +1101,11 @@ var Evaluator = /** @class */ (function () {
|
|
|
1099
1101
|
return padStart__default["default"](text, num, pad);
|
|
1100
1102
|
};
|
|
1101
1103
|
/**
|
|
1102
|
-
*
|
|
1104
|
+
* 将文本转成标题。
|
|
1103
1105
|
*
|
|
1104
|
-
* 示例 `CAPITALIZE("star")
|
|
1106
|
+
* 示例 `CAPITALIZE("star")`,
|
|
1105
1107
|
*
|
|
1106
|
-
* 返回 `Star
|
|
1108
|
+
* 返回 `Star`。
|
|
1107
1109
|
*
|
|
1108
1110
|
* @example CAPITALIZE(text)
|
|
1109
1111
|
* @param {string} text - 文本
|
|
@@ -1116,11 +1118,11 @@ var Evaluator = /** @class */ (function () {
|
|
|
1116
1118
|
return capitalize__default["default"](text);
|
|
1117
1119
|
};
|
|
1118
1120
|
/**
|
|
1119
|
-
* 对文本进行 HTML
|
|
1121
|
+
* 对文本进行 HTML 转义。
|
|
1120
1122
|
*
|
|
1121
|
-
* 示例 `ESCAPE("<star>&")
|
|
1123
|
+
* 示例 `ESCAPE("<star>&")`,
|
|
1122
1124
|
*
|
|
1123
|
-
* 返回 `<start>&
|
|
1125
|
+
* 返回 `<start>&`。
|
|
1124
1126
|
*
|
|
1125
1127
|
* @example ESCAPE(text)
|
|
1126
1128
|
* @param {string} text - 文本
|
|
@@ -1133,11 +1135,11 @@ var Evaluator = /** @class */ (function () {
|
|
|
1133
1135
|
return escape__default["default"](text);
|
|
1134
1136
|
};
|
|
1135
1137
|
/**
|
|
1136
|
-
*
|
|
1138
|
+
* 对文本长度进行截断。
|
|
1137
1139
|
*
|
|
1138
|
-
* 示例 `TRUNCATE("amis.baidu.com", 6)
|
|
1140
|
+
* 示例 `TRUNCATE("amis.baidu.com", 6)`,
|
|
1139
1141
|
*
|
|
1140
|
-
* 返回 `amis
|
|
1142
|
+
* 返回 `amis...`。
|
|
1141
1143
|
*
|
|
1142
1144
|
* @example TRUNCATE(text, 6)
|
|
1143
1145
|
* @param {string} text - 文本
|
|
@@ -1151,7 +1153,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
1151
1153
|
return truncate__default["default"](text, { length: length });
|
|
1152
1154
|
};
|
|
1153
1155
|
/**
|
|
1154
|
-
*
|
|
1156
|
+
* 取在某个分隔符之前的所有字符串。
|
|
1155
1157
|
*
|
|
1156
1158
|
* @example BEFORELAST(text, '.')
|
|
1157
1159
|
* @param {string} text - 文本
|
|
@@ -1166,11 +1168,11 @@ var Evaluator = /** @class */ (function () {
|
|
|
1166
1168
|
return text.split(delimiter).slice(0, -1).join(delimiter) || text + '';
|
|
1167
1169
|
};
|
|
1168
1170
|
/**
|
|
1169
|
-
*
|
|
1171
|
+
* 将文本根据指定片段分割成数组。
|
|
1170
1172
|
*
|
|
1171
|
-
* 示例:`SPLIT("a,b,c", ",")
|
|
1173
|
+
* 示例:`SPLIT("a,b,c", ",")`,
|
|
1172
1174
|
*
|
|
1173
|
-
* 返回 `["a", "b", "c"]
|
|
1175
|
+
* 返回 `["a", "b", "c"]`。
|
|
1174
1176
|
*
|
|
1175
1177
|
* @example SPLIT(text, ',')
|
|
1176
1178
|
* @param {string} text - 文本
|
|
@@ -1185,7 +1187,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
1185
1187
|
return text.split(sep);
|
|
1186
1188
|
};
|
|
1187
1189
|
/**
|
|
1188
|
-
*
|
|
1190
|
+
* 将文本去除前后空格。
|
|
1189
1191
|
*
|
|
1190
1192
|
* @example TRIM(text)
|
|
1191
1193
|
* @param {string} text - 文本
|
|
@@ -1198,11 +1200,11 @@ var Evaluator = /** @class */ (function () {
|
|
|
1198
1200
|
return text.trim();
|
|
1199
1201
|
};
|
|
1200
1202
|
/**
|
|
1201
|
-
* 去除文本中的 HTML
|
|
1203
|
+
* 去除文本中的 HTML 标签。
|
|
1202
1204
|
*
|
|
1203
|
-
* 示例:`STRIPTAG("<b>amis</b>")
|
|
1205
|
+
* 示例:`STRIPTAG("<b>amis</b>")`,
|
|
1204
1206
|
*
|
|
1205
|
-
* 返回:`amis
|
|
1207
|
+
* 返回:`amis`。
|
|
1206
1208
|
*
|
|
1207
1209
|
* @example STRIPTAG(text)
|
|
1208
1210
|
* @param {string} text - 文本
|
|
@@ -1215,11 +1217,11 @@ var Evaluator = /** @class */ (function () {
|
|
|
1215
1217
|
return text.replace(/<\/?[^>]+(>|$)/g, '');
|
|
1216
1218
|
};
|
|
1217
1219
|
/**
|
|
1218
|
-
* 将字符串中的换行转成 HTML `<br
|
|
1220
|
+
* 将字符串中的换行转成 HTML `<br>`,用于简单换行的场景。
|
|
1219
1221
|
*
|
|
1220
|
-
* 示例:`LINEBREAK("\n")
|
|
1222
|
+
* 示例:`LINEBREAK("\n")`,
|
|
1221
1223
|
*
|
|
1222
|
-
* 返回:`<br
|
|
1224
|
+
* 返回:`<br/>`。
|
|
1223
1225
|
*
|
|
1224
1226
|
* @example LINEBREAK(text)
|
|
1225
1227
|
* @param {string} text - 文本
|
|
@@ -1232,7 +1234,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
1232
1234
|
return text.replace(/(?:\r\n|\r|\n)/g, '<br/>');
|
|
1233
1235
|
};
|
|
1234
1236
|
/**
|
|
1235
|
-
* 判断字符串(text)是否以特定字符串(startString)开始,是则返回
|
|
1237
|
+
* 判断字符串(text)是否以特定字符串(startString)开始,是则返回 true,否则返回 false。
|
|
1236
1238
|
*
|
|
1237
1239
|
* @example STARTSWITH(text, '片段')
|
|
1238
1240
|
* @param {string} text - 文本
|
|
@@ -1249,7 +1251,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
1249
1251
|
return text.indexOf(search) === 0;
|
|
1250
1252
|
};
|
|
1251
1253
|
/**
|
|
1252
|
-
* 判断字符串(text)是否以特定字符串(endString)结束,是则返回
|
|
1254
|
+
* 判断字符串(text)是否以特定字符串(endString)结束,是则返回 true,否则返回 false。
|
|
1253
1255
|
*
|
|
1254
1256
|
* @example ENDSWITH(text, '片段')
|
|
1255
1257
|
* @param {string} text - 文本
|
|
@@ -1266,7 +1268,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
1266
1268
|
return text.indexOf(search, text.length - search.length) !== -1;
|
|
1267
1269
|
};
|
|
1268
1270
|
/**
|
|
1269
|
-
* 判断参数 1 中的文本是否包含参数 2
|
|
1271
|
+
* 判断参数 1 中的文本是否包含参数 2 中的文本,是则返回 true,否则返回 false。
|
|
1270
1272
|
*
|
|
1271
1273
|
* @example CONTAINS(text, searchText)
|
|
1272
1274
|
* @param {string} text - 文本
|
|
@@ -1309,7 +1311,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
1309
1311
|
return result;
|
|
1310
1312
|
};
|
|
1311
1313
|
/**
|
|
1312
|
-
*
|
|
1314
|
+
* 对文本进行搜索,返回命中的位置。
|
|
1313
1315
|
*
|
|
1314
1316
|
* @example SEARCH(text, search, 0)
|
|
1315
1317
|
* @param {string} text - 要处理的文本
|
|
@@ -1330,7 +1332,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
1330
1332
|
return -1;
|
|
1331
1333
|
};
|
|
1332
1334
|
/**
|
|
1333
|
-
*
|
|
1335
|
+
* 返回文本字符串中从指定位置开始的特定数目的字符。
|
|
1334
1336
|
*
|
|
1335
1337
|
* @example MID(text, from, len)
|
|
1336
1338
|
* @param {string} text - 要处理的文本
|
|
@@ -1345,11 +1347,11 @@ var Evaluator = /** @class */ (function () {
|
|
|
1345
1347
|
return text.substring(from, from + len);
|
|
1346
1348
|
};
|
|
1347
1349
|
/**
|
|
1348
|
-
*
|
|
1350
|
+
* 返回路径中的文件名。
|
|
1349
1351
|
*
|
|
1350
|
-
* 示例:`/home/amis/a.json
|
|
1352
|
+
* 示例:`/home/amis/a.json`,
|
|
1351
1353
|
*
|
|
1352
|
-
* 返回:a.json
|
|
1354
|
+
* 返回:a.json`。
|
|
1353
1355
|
*
|
|
1354
1356
|
* @example BASENAME(text)
|
|
1355
1357
|
* @param {string} text - 要处理的文本
|
|
@@ -1365,8 +1367,8 @@ var Evaluator = /** @class */ (function () {
|
|
|
1365
1367
|
/**
|
|
1366
1368
|
* 创建日期对象,可以通过特定格式的字符串,或者数值。
|
|
1367
1369
|
*
|
|
1368
|
-
* 需要注意的是,其中月份的数值是从0
|
|
1369
|
-
*
|
|
1370
|
+
* 需要注意的是,其中月份的数值是从0开始的,
|
|
1371
|
+
* 即如果是12月份,你应该传入数值11。
|
|
1370
1372
|
*
|
|
1371
1373
|
* @example DATE(2021, 11, 6, 8, 20, 0)
|
|
1372
1374
|
* @example DATE('2021-12-06 08:20:00')
|
|
@@ -1381,10 +1383,9 @@ var Evaluator = /** @class */ (function () {
|
|
|
1381
1383
|
return new Date(year, month, day, hour, minute, second);
|
|
1382
1384
|
};
|
|
1383
1385
|
/**
|
|
1384
|
-
*
|
|
1386
|
+
* 返回时间的时间戳。
|
|
1385
1387
|
*
|
|
1386
1388
|
* @example TIMESTAMP(date[, format = "X"])
|
|
1387
|
-
* @example TIMESTAMP(date, 'x')
|
|
1388
1389
|
* @namespace 日期函数
|
|
1389
1390
|
* @param {date} date 日期对象
|
|
1390
1391
|
* @param {string} format 时间戳格式,带毫秒传入 'x'。默认为 'X' 不带毫秒的。
|
|
@@ -1395,7 +1396,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
1395
1396
|
return parseInt(moment__default["default"](this.normalizeDate(date)).format(format === 'x' ? 'x' : 'X'), 10);
|
|
1396
1397
|
};
|
|
1397
1398
|
/**
|
|
1398
|
-
*
|
|
1399
|
+
* 返回今天的日期。
|
|
1399
1400
|
*
|
|
1400
1401
|
* @example TODAY()
|
|
1401
1402
|
* @namespace 日期函数
|
|
@@ -1417,11 +1418,11 @@ var Evaluator = /** @class */ (function () {
|
|
|
1417
1418
|
return new Date();
|
|
1418
1419
|
};
|
|
1419
1420
|
/**
|
|
1420
|
-
*
|
|
1421
|
+
* 获取日期的星期几。
|
|
1421
1422
|
*
|
|
1422
|
-
*
|
|
1423
|
+
* 示例
|
|
1423
1424
|
*
|
|
1424
|
-
* WEEKDAY('2023-02-27') 得到 1
|
|
1425
|
+
* WEEKDAY('2023-02-27') 得到 1。
|
|
1425
1426
|
*
|
|
1426
1427
|
* @example WEEKDAY(date)
|
|
1427
1428
|
* @namespace 日期函数
|
|
@@ -1435,11 +1436,11 @@ var Evaluator = /** @class */ (function () {
|
|
|
1435
1436
|
return type === 2 ? md.isoWeekday() : md.weekday();
|
|
1436
1437
|
};
|
|
1437
1438
|
/**
|
|
1438
|
-
*
|
|
1439
|
+
* 获取年份的星期,即第几周。
|
|
1439
1440
|
*
|
|
1440
|
-
*
|
|
1441
|
+
* 示例
|
|
1441
1442
|
*
|
|
1442
|
-
* WEEK('2023-03-05') 得到 10
|
|
1443
|
+
* WEEK('2023-03-05') 得到 10。
|
|
1443
1444
|
*
|
|
1444
1445
|
* @example WEEK(date)
|
|
1445
1446
|
* @namespace 日期函数
|
|
@@ -1454,14 +1455,14 @@ var Evaluator = /** @class */ (function () {
|
|
|
1454
1455
|
return isISO ? md.isoWeek() : md.week();
|
|
1455
1456
|
};
|
|
1456
1457
|
/**
|
|
1457
|
-
*
|
|
1458
|
+
* 对日期、日期字符串、时间戳进行格式化。
|
|
1458
1459
|
*
|
|
1459
|
-
*
|
|
1460
|
+
* 示例
|
|
1460
1461
|
*
|
|
1461
|
-
* DATETOSTR('12/25/2022', 'YYYY-MM-DD') 得到 '2022.12.25'
|
|
1462
|
-
* DATETOSTR(1676563200, 'YYYY.MM.DD') 得到 '2023.02.17'
|
|
1463
|
-
* DATETOSTR(1676563200000, 'YYYY.MM.DD hh:mm:ss') 得到 '2023.02.17 12:00:00'
|
|
1464
|
-
* DATETOSTR(DATE('2021-12-21'), 'YYYY.MM.DD hh:mm:ss') 得到 '2021.12.21 08:00:00'
|
|
1462
|
+
* DATETOSTR('12/25/2022', 'YYYY-MM-DD') 得到 '2022.12.25',
|
|
1463
|
+
* DATETOSTR(1676563200, 'YYYY.MM.DD') 得到 '2023.02.17',
|
|
1464
|
+
* DATETOSTR(1676563200000, 'YYYY.MM.DD hh:mm:ss') 得到 '2023.02.17 12:00:00',
|
|
1465
|
+
* DATETOSTR(DATE('2021-12-21'), 'YYYY.MM.DD hh:mm:ss') 得到 '2021.12.21 08:00:00'。
|
|
1465
1466
|
*
|
|
1466
1467
|
* @example DATETOSTR(date, 'YYYY-MM-DD')
|
|
1467
1468
|
* @namespace 日期函数
|
|
@@ -1476,16 +1477,16 @@ var Evaluator = /** @class */ (function () {
|
|
|
1476
1477
|
return moment__default["default"](date).format(format);
|
|
1477
1478
|
};
|
|
1478
1479
|
/**
|
|
1479
|
-
*
|
|
1480
|
+
* 获取日期范围字符串中的开始时间、结束时间。
|
|
1480
1481
|
*
|
|
1481
1482
|
* 示例:
|
|
1482
1483
|
*
|
|
1483
|
-
* DATERANGESPLIT('1676563200, 1676735999') 得到 [1676563200, 1676735999]
|
|
1484
|
-
* DATERANGESPLIT('1676563200, 1676735999', undefined , 'YYYY.MM.DD hh:mm:ss') 得到 [2023.02.17 12:00:00, 2023.02.18 11:59:59]
|
|
1485
|
-
* DATERANGESPLIT('1676563200, 1676735999', 0 , 'YYYY.MM.DD hh:mm:ss') 得到 '2023.02.17 12:00:00'
|
|
1486
|
-
* DATERANGESPLIT('1676563200, 1676735999', 'start' , 'YYYY.MM.DD hh:mm:ss') 得到 '2023.02.17 12:00:00'
|
|
1487
|
-
* DATERANGESPLIT('1676563200, 1676735999', 1 , 'YYYY.MM.DD hh:mm:ss') 得到 '2023.02.18 11:59:59'
|
|
1488
|
-
* DATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '2023.02.18 11:59:59'
|
|
1484
|
+
* DATERANGESPLIT('1676563200, 1676735999') 得到 [1676563200, 1676735999],
|
|
1485
|
+
* DATERANGESPLIT('1676563200, 1676735999', undefined , 'YYYY.MM.DD hh:mm:ss') 得到 [2023.02.17 12:00:00, 2023.02.18 11:59:59],
|
|
1486
|
+
* DATERANGESPLIT('1676563200, 1676735999', 0 , 'YYYY.MM.DD hh:mm:ss') 得到 '2023.02.17 12:00:00',
|
|
1487
|
+
* DATERANGESPLIT('1676563200, 1676735999', 'start' , 'YYYY.MM.DD hh:mm:ss') 得到 '2023.02.17 12:00:00',
|
|
1488
|
+
* DATERANGESPLIT('1676563200, 1676735999', 1 , 'YYYY.MM.DD hh:mm:ss') 得到 '2023.02.18 11:59:59',
|
|
1489
|
+
* DATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '2023.02.18 11:59:59'。
|
|
1489
1490
|
*
|
|
1490
1491
|
* @example DATERANGESPLIT(date, 'YYYY-MM-DD')
|
|
1491
1492
|
* @namespace 日期函数
|
|
@@ -1518,7 +1519,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
1518
1519
|
return dateArr;
|
|
1519
1520
|
};
|
|
1520
1521
|
/**
|
|
1521
|
-
*
|
|
1522
|
+
* 返回日期的指定范围的开端。
|
|
1522
1523
|
*
|
|
1523
1524
|
* @namespace 日期函数
|
|
1524
1525
|
* @example STARTOF(date[unit = "day"])
|
|
@@ -1532,7 +1533,8 @@ var Evaluator = /** @class */ (function () {
|
|
|
1532
1533
|
return format ? md.format(format) : md.toDate();
|
|
1533
1534
|
};
|
|
1534
1535
|
/**
|
|
1535
|
-
*
|
|
1536
|
+
* 返回日期的指定范围的末尾。
|
|
1537
|
+
*
|
|
1536
1538
|
* @namespace 日期函数
|
|
1537
1539
|
* @example ENDOF(date[unit = "day"])
|
|
1538
1540
|
* @param {date} date 日期对象
|
|
@@ -1570,7 +1572,8 @@ var Evaluator = /** @class */ (function () {
|
|
|
1570
1572
|
});
|
|
1571
1573
|
};
|
|
1572
1574
|
/**
|
|
1573
|
-
*
|
|
1575
|
+
* 返回日期的年份。
|
|
1576
|
+
*
|
|
1574
1577
|
* @namespace 日期函数
|
|
1575
1578
|
* @example YEAR(date)
|
|
1576
1579
|
* @param {date} date 日期对象
|
|
@@ -1593,7 +1596,8 @@ var Evaluator = /** @class */ (function () {
|
|
|
1593
1596
|
return date.getMonth() + 1;
|
|
1594
1597
|
};
|
|
1595
1598
|
/**
|
|
1596
|
-
*
|
|
1599
|
+
* 返回日期的天。
|
|
1600
|
+
*
|
|
1597
1601
|
* @namespace 日期函数
|
|
1598
1602
|
* @example DAY(date)
|
|
1599
1603
|
* @param {date} date 日期对象
|
|
@@ -1604,7 +1608,8 @@ var Evaluator = /** @class */ (function () {
|
|
|
1604
1608
|
return date.getDate();
|
|
1605
1609
|
};
|
|
1606
1610
|
/**
|
|
1607
|
-
*
|
|
1611
|
+
* 返回日期的小时。
|
|
1612
|
+
*
|
|
1608
1613
|
* @param {date} date 日期对象
|
|
1609
1614
|
* @namespace 日期函数
|
|
1610
1615
|
* @example HOUR(date)
|
|
@@ -1615,7 +1620,8 @@ var Evaluator = /** @class */ (function () {
|
|
|
1615
1620
|
return date.getHours();
|
|
1616
1621
|
};
|
|
1617
1622
|
/**
|
|
1618
|
-
*
|
|
1623
|
+
* 返回日期的分。
|
|
1624
|
+
*
|
|
1619
1625
|
* @param {date} date 日期对象
|
|
1620
1626
|
* @namespace 日期函数
|
|
1621
1627
|
* @example MINUTE(date)
|
|
@@ -1626,7 +1632,8 @@ var Evaluator = /** @class */ (function () {
|
|
|
1626
1632
|
return date.getMinutes();
|
|
1627
1633
|
};
|
|
1628
1634
|
/**
|
|
1629
|
-
*
|
|
1635
|
+
* 返回日期的秒。
|
|
1636
|
+
*
|
|
1630
1637
|
* @param {date} date 日期对象
|
|
1631
1638
|
* @namespace 日期函数
|
|
1632
1639
|
* @example SECOND(date)
|
|
@@ -1637,7 +1644,8 @@ var Evaluator = /** @class */ (function () {
|
|
|
1637
1644
|
return date.getSeconds();
|
|
1638
1645
|
};
|
|
1639
1646
|
/**
|
|
1640
|
-
*
|
|
1647
|
+
* 返回两个日期相差多少年。
|
|
1648
|
+
*
|
|
1641
1649
|
* @param {date} endDate 日期对象
|
|
1642
1650
|
* @param {date} startDate 日期对象
|
|
1643
1651
|
* @namespace 日期函数
|
|
@@ -1650,7 +1658,8 @@ var Evaluator = /** @class */ (function () {
|
|
|
1650
1658
|
return moment__default["default"](endDate).diff(moment__default["default"](startDate), 'year');
|
|
1651
1659
|
};
|
|
1652
1660
|
/**
|
|
1653
|
-
*
|
|
1661
|
+
* 返回两个日期相差多少分钟。
|
|
1662
|
+
*
|
|
1654
1663
|
* @param {date} endDate 日期对象
|
|
1655
1664
|
* @param {date} startDate 日期对象
|
|
1656
1665
|
* @namespace 日期函数
|
|
@@ -1663,7 +1672,8 @@ var Evaluator = /** @class */ (function () {
|
|
|
1663
1672
|
return moment__default["default"](endDate).diff(moment__default["default"](startDate), 'minutes');
|
|
1664
1673
|
};
|
|
1665
1674
|
/**
|
|
1666
|
-
*
|
|
1675
|
+
* 返回两个日期相差多少天。
|
|
1676
|
+
*
|
|
1667
1677
|
* @param {date} endDate 日期对象
|
|
1668
1678
|
* @param {date} startDate 日期对象
|
|
1669
1679
|
* @namespace 日期函数
|
|
@@ -1676,7 +1686,8 @@ var Evaluator = /** @class */ (function () {
|
|
|
1676
1686
|
return moment__default["default"](endDate).diff(moment__default["default"](startDate), 'days');
|
|
1677
1687
|
};
|
|
1678
1688
|
/**
|
|
1679
|
-
*
|
|
1689
|
+
* 返回两个日期相差多少小时。
|
|
1690
|
+
*
|
|
1680
1691
|
* @param {date} endDate 日期对象
|
|
1681
1692
|
* @param {date} startDate 日期对象
|
|
1682
1693
|
* @namespace 日期函数
|
|
@@ -1689,11 +1700,11 @@ var Evaluator = /** @class */ (function () {
|
|
|
1689
1700
|
return moment__default["default"](endDate).diff(moment__default["default"](startDate), 'hour');
|
|
1690
1701
|
};
|
|
1691
1702
|
/**
|
|
1692
|
-
*
|
|
1703
|
+
* 修改日期,对日期进行加减天、月份、年等操作。
|
|
1693
1704
|
*
|
|
1694
1705
|
* 示例:
|
|
1695
1706
|
*
|
|
1696
|
-
* DATEMODIFY(A, -2, 'month')
|
|
1707
|
+
* DATEMODIFY(A, -2, 'month'),
|
|
1697
1708
|
*
|
|
1698
1709
|
* 对日期 A 进行往前减2月的操作。
|
|
1699
1710
|
*
|
|
@@ -1724,7 +1735,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
1724
1735
|
return moment__default["default"](value, format).toDate();
|
|
1725
1736
|
};
|
|
1726
1737
|
/**
|
|
1727
|
-
*
|
|
1738
|
+
* 判断两个日期,是否第一个日期在第二个日期的前面,是则返回 true,否则返回 false。
|
|
1728
1739
|
*
|
|
1729
1740
|
* @param {date} a 第一个日期
|
|
1730
1741
|
* @param {date} b 第二个日期
|
|
@@ -1740,7 +1751,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
1740
1751
|
return moment__default["default"](a).isBefore(moment__default["default"](b), unit);
|
|
1741
1752
|
};
|
|
1742
1753
|
/**
|
|
1743
|
-
*
|
|
1754
|
+
* 判断两个日期,是否第一个日期在第二个日期的后面,是则返回 true,否则返回 false。
|
|
1744
1755
|
*
|
|
1745
1756
|
* @param {date} a 第一个日期
|
|
1746
1757
|
* @param {date} b 第二个日期
|
|
@@ -1756,9 +1767,9 @@ var Evaluator = /** @class */ (function () {
|
|
|
1756
1767
|
return moment__default["default"](a).isAfter(moment__default["default"](b), unit);
|
|
1757
1768
|
};
|
|
1758
1769
|
/**
|
|
1759
|
-
*
|
|
1770
|
+
* 判断日期是否在指定范围内,是则返回 true,否则返回 false。
|
|
1760
1771
|
*
|
|
1761
|
-
* 示例:BETWEENRANGE('2021/12/6', ['2021/12/5','2021/12/7'])
|
|
1772
|
+
* 示例:BETWEENRANGE('2021/12/6', ['2021/12/5','2021/12/7'])。
|
|
1762
1773
|
*
|
|
1763
1774
|
* @param {any} date 第一个日期
|
|
1764
1775
|
* @param {any[]} daterange 日期范围
|
|
@@ -1775,7 +1786,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
1775
1786
|
return moment__default["default"](this.normalizeDate(date)).isBetween(range[0], range[1], unit, inclusivity);
|
|
1776
1787
|
};
|
|
1777
1788
|
/**
|
|
1778
|
-
*
|
|
1789
|
+
* 判断两个日期,是否第一个日期在第二个日期的前面或者相等,是则返回 true,否则返回 false。
|
|
1779
1790
|
*
|
|
1780
1791
|
* @param {date} a 第一个日期
|
|
1781
1792
|
* @param {date} b 第二个日期
|
|
@@ -1791,7 +1802,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
1791
1802
|
return moment__default["default"](a).isSameOrBefore(moment__default["default"](b), unit);
|
|
1792
1803
|
};
|
|
1793
1804
|
/**
|
|
1794
|
-
*
|
|
1805
|
+
* 判断两个日期,是否第一个日期在第二个日期的后面或者相等,是则返回 true,否则返回 false。
|
|
1795
1806
|
*
|
|
1796
1807
|
* @param {date} a 第一个日期
|
|
1797
1808
|
* @param {date} b 第二个日期
|
|
@@ -1807,7 +1818,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
1807
1818
|
return moment__default["default"](a).isSameOrAfter(moment__default["default"](b), unit);
|
|
1808
1819
|
};
|
|
1809
1820
|
/**
|
|
1810
|
-
*
|
|
1821
|
+
* 返回数组的长度。
|
|
1811
1822
|
*
|
|
1812
1823
|
* @param {Array<any>} arr 数组
|
|
1813
1824
|
* @namespace 数组
|
|
@@ -1860,7 +1871,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
1860
1871
|
*
|
|
1861
1872
|
* 示例:
|
|
1862
1873
|
*
|
|
1863
|
-
* ARRAYFINDINDEX([0, 2, false], item => item === 2) 得到 1
|
|
1874
|
+
* ARRAYFINDINDEX([0, 2, false], item => item === 2) 得到 1。
|
|
1864
1875
|
*
|
|
1865
1876
|
* @param {Array<any>} arr 数组
|
|
1866
1877
|
* @param {Function<any>} iterator 箭头函数
|
|
@@ -1883,7 +1894,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
1883
1894
|
*
|
|
1884
1895
|
* 示例:
|
|
1885
1896
|
*
|
|
1886
|
-
* ARRAYFIND([0, 2, false], item => item === 2) 得到 2
|
|
1897
|
+
* ARRAYFIND([0, 2, false], item => item === 2) 得到 2。
|
|
1887
1898
|
*
|
|
1888
1899
|
* @param {Array<any>} arr 数组
|
|
1889
1900
|
* @param {Function<any>} iterator 箭头函数
|
|
@@ -1902,11 +1913,11 @@ var Evaluator = /** @class */ (function () {
|
|
|
1902
1913
|
};
|
|
1903
1914
|
/**
|
|
1904
1915
|
* 数据做数据遍历判断,需要搭配箭头函数一起使用,注意箭头函数只支持单表达式用法。
|
|
1905
|
-
* 判断第二个箭头函数是否存在返回为 true
|
|
1916
|
+
* 判断第二个箭头函数是否存在返回为 true 的成员,是则返回 true,否则返回 false。
|
|
1906
1917
|
*
|
|
1907
1918
|
* 示例:
|
|
1908
1919
|
*
|
|
1909
|
-
* ARRAYSOME([0, 2, false], item => item === 2) 得到 true
|
|
1920
|
+
* ARRAYSOME([0, 2, false], item => item === 2) 得到 true。
|
|
1910
1921
|
*
|
|
1911
1922
|
* @param {Array<any>} arr 数组
|
|
1912
1923
|
* @param {Function<any>} iterator 箭头函数
|
|
@@ -1925,7 +1936,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
1925
1936
|
};
|
|
1926
1937
|
/**
|
|
1927
1938
|
* 数据做数据遍历判断,需要搭配箭头函数一起使用,注意箭头函数只支持单表达式用法。
|
|
1928
|
-
* 判断第二个箭头函数返回是否都为 true。
|
|
1939
|
+
* 判断第二个箭头函数返回是否都为 true,是则返回 true,否则返回 false。
|
|
1929
1940
|
*
|
|
1930
1941
|
* 示例:
|
|
1931
1942
|
*
|
|
@@ -1947,11 +1958,11 @@ var Evaluator = /** @class */ (function () {
|
|
|
1947
1958
|
});
|
|
1948
1959
|
};
|
|
1949
1960
|
/**
|
|
1950
|
-
*
|
|
1961
|
+
* 判断数据中是否存在指定元素。
|
|
1951
1962
|
*
|
|
1952
1963
|
* 示例:
|
|
1953
1964
|
*
|
|
1954
|
-
* ARRAYINCLUDES([0, 2, false], 2) 得到 true
|
|
1965
|
+
* ARRAYINCLUDES([0, 2, false], 2) 得到 true。
|
|
1955
1966
|
*
|
|
1956
1967
|
* @param {Array<any>} arr 数组
|
|
1957
1968
|
* @param {any} item 元素
|
|
@@ -1963,11 +1974,11 @@ var Evaluator = /** @class */ (function () {
|
|
|
1963
1974
|
return (Array.isArray(arr) ? arr : []).includes(item);
|
|
1964
1975
|
};
|
|
1965
1976
|
/**
|
|
1966
|
-
* 数组过滤掉 false、null、0 和 ""
|
|
1977
|
+
* 数组过滤掉 false、null、0 和 ""。
|
|
1967
1978
|
*
|
|
1968
1979
|
* 示例:
|
|
1969
1980
|
*
|
|
1970
|
-
* COMPACT([0, 1, false, 2, '', 3]) 得到 [1, 2, 3]
|
|
1981
|
+
* COMPACT([0, 1, false, 2, '', 3]) 得到 [1, 2, 3]。
|
|
1971
1982
|
*
|
|
1972
1983
|
* @param {Array<any>} arr 数组
|
|
1973
1984
|
* @namespace 数组
|
|
@@ -2001,11 +2012,11 @@ var Evaluator = /** @class */ (function () {
|
|
|
2001
2012
|
}
|
|
2002
2013
|
};
|
|
2003
2014
|
/**
|
|
2004
|
-
*
|
|
2015
|
+
* 数组转成字符串。
|
|
2005
2016
|
*
|
|
2006
2017
|
* 示例:
|
|
2007
2018
|
*
|
|
2008
|
-
* JOIN(['a', 'b', 'c'], '=') 得到 'a=b=c'
|
|
2019
|
+
* JOIN(['a', 'b', 'c'], '=') 得到 'a=b=c'。
|
|
2009
2020
|
*
|
|
2010
2021
|
* @param {Array<any>} arr 数组
|
|
2011
2022
|
* @param { String} separator 分隔符
|
|
@@ -2023,11 +2034,11 @@ var Evaluator = /** @class */ (function () {
|
|
|
2023
2034
|
}
|
|
2024
2035
|
};
|
|
2025
2036
|
/**
|
|
2026
|
-
*
|
|
2037
|
+
* 数组合并。
|
|
2027
2038
|
*
|
|
2028
2039
|
* 示例:
|
|
2029
2040
|
*
|
|
2030
|
-
* CONCAT(['a', 'b', 'c'], ['1'], ['3']) 得到 ['a', 'b', 'c', '1', '3']
|
|
2041
|
+
* CONCAT(['a', 'b', 'c'], ['1'], ['3']) 得到 ['a', 'b', 'c', '1', '3']。
|
|
2031
2042
|
*
|
|
2032
2043
|
* @param {Array<any>} arr 数组
|
|
2033
2044
|
* @namespace 数组
|
|
@@ -2045,11 +2056,11 @@ var Evaluator = /** @class */ (function () {
|
|
|
2045
2056
|
return arr.reduce(function (a, b) { return a.concat(b); }, []).filter(function (item) { return item; });
|
|
2046
2057
|
};
|
|
2047
2058
|
/**
|
|
2048
|
-
* 数组去重,第二个参数「field
|
|
2059
|
+
* 数组去重,第二个参数「field」,可指定根据该字段去重。
|
|
2049
2060
|
*
|
|
2050
2061
|
* 示例:
|
|
2051
2062
|
*
|
|
2052
|
-
* UNIQ([{a: '1'}, {b: '2'}, {a: '1'}], 'id')
|
|
2063
|
+
* UNIQ([{a: '1'}, {b: '2'}, {a: '1'}], 'id')。
|
|
2053
2064
|
*
|
|
2054
2065
|
* @param {Array<any>} arr 数组
|
|
2055
2066
|
* @param {string} field 字段
|
|
@@ -2062,11 +2073,11 @@ var Evaluator = /** @class */ (function () {
|
|
|
2062
2073
|
return field ? uniqBy__default["default"](arr, field) : uniqWith__default["default"](arr, isEqual__default["default"]);
|
|
2063
2074
|
};
|
|
2064
2075
|
/**
|
|
2065
|
-
* 将JS对象转换成JSON
|
|
2076
|
+
* 将JS对象转换成JSON字符串。
|
|
2066
2077
|
*
|
|
2067
2078
|
* 示例:
|
|
2068
2079
|
*
|
|
2069
|
-
* ENCODEJSON({name: 'amis'}) 得到 '{"name":"amis"}'
|
|
2080
|
+
* ENCODEJSON({name: 'amis'}) 得到 '{"name":"amis"}'。
|
|
2070
2081
|
*
|
|
2071
2082
|
* @param {object} obj JS对象
|
|
2072
2083
|
* @namespace 编码
|
|
@@ -2077,11 +2088,11 @@ var Evaluator = /** @class */ (function () {
|
|
|
2077
2088
|
return JSON.stringify(obj);
|
|
2078
2089
|
};
|
|
2079
2090
|
/**
|
|
2080
|
-
* 解析JSON编码数据,返回JS
|
|
2091
|
+
* 解析JSON编码数据,返回JS对象。
|
|
2081
2092
|
*
|
|
2082
2093
|
* 示例:
|
|
2083
2094
|
*
|
|
2084
|
-
* DECODEJSON('{\"name\": "amis"}') 得到 {name: 'amis'}
|
|
2095
|
+
* DECODEJSON('{\"name\": "amis"}') 得到 {name: 'amis'}。
|
|
2085
2096
|
*
|
|
2086
2097
|
* @param {string} str 字符串
|
|
2087
2098
|
* @namespace 编码
|
|
@@ -2092,15 +2103,15 @@ var Evaluator = /** @class */ (function () {
|
|
|
2092
2103
|
return JSON.parse(str);
|
|
2093
2104
|
};
|
|
2094
2105
|
/**
|
|
2095
|
-
* 根据对象或者数组的path路径获取值。 如果解析 value 是 undefined 会以 defaultValue
|
|
2106
|
+
* 根据对象或者数组的path路径获取值。 如果解析 value 是 undefined 会以 defaultValue 取代。
|
|
2096
2107
|
*
|
|
2097
2108
|
* 示例:
|
|
2098
2109
|
*
|
|
2099
|
-
* GET([0, 2, {name: 'amis', age: 18}], 1) 得到 2
|
|
2100
|
-
* GET([0, 2, {name: 'amis', age: 18}], '2.name') 得到 'amis'
|
|
2101
|
-
* GET({arr: [{name: 'amis', age: 18}]}, 'arr[0].name') 得到 'amis'
|
|
2102
|
-
* GET({arr: [{name: 'amis', age: 18}]}, 'arr.0.name') 得到 'amis'
|
|
2103
|
-
* GET({arr: [{name: 'amis', age: 18}]}, 'arr.1.name', 'not-found') 得到 'not-found'
|
|
2110
|
+
* GET([0, 2, {name: 'amis', age: 18}], 1) 得到 2,
|
|
2111
|
+
* GET([0, 2, {name: 'amis', age: 18}], '2.name') 得到 'amis',
|
|
2112
|
+
* GET({arr: [{name: 'amis', age: 18}]}, 'arr[0].name') 得到 'amis',
|
|
2113
|
+
* GET({arr: [{name: 'amis', age: 18}]}, 'arr.0.name') 得到 'amis',
|
|
2114
|
+
* GET({arr: [{name: 'amis', age: 18}]}, 'arr.1.name', 'not-found') 得到 'not-found'。
|
|
2104
2115
|
*
|
|
2105
2116
|
* @param {any} obj 对象或数组
|
|
2106
2117
|
* @param {string} path 路径
|