amis-formula 6.9.0 → 6.10.0-beta.1
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 +24 -24
- package/esm/doc.md +30 -16
- package/esm/error.js +1 -1
- package/esm/evalutor.d.ts +31 -17
- package/esm/evalutor.js +37 -20
- 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 +1 -1
- package/esm/parser.js +1 -1
- package/lib/doc.js +24 -24
- package/lib/doc.md +30 -16
- package/lib/error.js +1 -1
- package/lib/evalutor.d.ts +31 -17
- package/lib/evalutor.js +37 -20
- 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 +1 -1
- package/lib/parser.js +1 -1
- package/package.json +1 -1
package/esm/evalutor.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* amis-formula v6.
|
|
2
|
+
* amis-formula v6.10.0-beta.1
|
|
3
3
|
* Copyright 2021-2024 fex
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -580,7 +580,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
580
580
|
/**
|
|
581
581
|
* 获取最大值,如果只有一个参数且是数组,则计算这个数组内的值。
|
|
582
582
|
*
|
|
583
|
-
* @example MAX(num1, num2, ...numN)
|
|
583
|
+
* @example MAX(num1, num2, ...numN) or MAX([num1, num2, ...numN])
|
|
584
584
|
* @param {...number} num - 数值
|
|
585
585
|
* @namespace 数学函数
|
|
586
586
|
*
|
|
@@ -598,7 +598,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
598
598
|
/**
|
|
599
599
|
* 获取最小值,如果只有一个参数且是数组,则计算这个数组内的值。
|
|
600
600
|
*
|
|
601
|
-
* @example MIN(num1, num2, ...numN)
|
|
601
|
+
* @example MIN(num1, num2, ...numN) or MIN([num1, num2, ...numN])
|
|
602
602
|
* @param {...number} num - 数值
|
|
603
603
|
* @namespace 数学函数
|
|
604
604
|
*
|
|
@@ -616,7 +616,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
616
616
|
/**
|
|
617
617
|
* 求和,如果只有一个参数且是数组,则计算这个数组内的值。
|
|
618
618
|
*
|
|
619
|
-
* @example SUM(num1, num2, ...numN)
|
|
619
|
+
* @example SUM(num1, num2, ...numN) or SUM([num1, num2, ...numN])
|
|
620
620
|
* @param {...number} num - 数值
|
|
621
621
|
* @namespace 数学函数
|
|
622
622
|
*
|
|
@@ -745,7 +745,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
745
745
|
/**
|
|
746
746
|
* 返回所有参数的平均值,如果只有一个参数且是数组,则计算这个数组内的值。
|
|
747
747
|
*
|
|
748
|
-
* @example AVG(num1, num2, ...numN)
|
|
748
|
+
* @example AVG(num1, num2, ...numN) or AVG([num1, num2, ...numN])
|
|
749
749
|
* @param {...number} num - 要处理的数字
|
|
750
750
|
* @namespace 数学函数
|
|
751
751
|
*
|
|
@@ -989,7 +989,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
989
989
|
if (!this.isValidValue(base) || !this.isValidValue(exponent)) {
|
|
990
990
|
return base;
|
|
991
991
|
}
|
|
992
|
-
return Math.pow(base, exponent);
|
|
992
|
+
return Math.pow(this.formatNumber(base), this.formatNumber(exponent));
|
|
993
993
|
};
|
|
994
994
|
// 文本函数
|
|
995
995
|
Evaluator.prototype.normalizeText = function (raw) {
|
|
@@ -1036,6 +1036,9 @@ var Evaluator = /** @class */ (function () {
|
|
|
1036
1036
|
* @returns {number} 长度
|
|
1037
1037
|
*/
|
|
1038
1038
|
Evaluator.prototype.fnLEN = function (text) {
|
|
1039
|
+
if (text === undefined || text === null) {
|
|
1040
|
+
return 0;
|
|
1041
|
+
}
|
|
1039
1042
|
text = this.normalizeText(text);
|
|
1040
1043
|
return text === null || text === void 0 ? void 0 : text.length;
|
|
1041
1044
|
};
|
|
@@ -1053,7 +1056,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
1053
1056
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
1054
1057
|
args[_i] = arguments[_i];
|
|
1055
1058
|
}
|
|
1056
|
-
return this.fnLEN.
|
|
1059
|
+
return this.fnLEN.apply(this, args);
|
|
1057
1060
|
};
|
|
1058
1061
|
/**
|
|
1059
1062
|
* 判断文本是否为空。
|
|
@@ -1081,7 +1084,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
1081
1084
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
1082
1085
|
args[_i] = arguments[_i];
|
|
1083
1086
|
}
|
|
1084
|
-
return args.join('');
|
|
1087
|
+
return args.map(this.normalizeText).join('');
|
|
1085
1088
|
};
|
|
1086
1089
|
/**
|
|
1087
1090
|
* 返回计算机字符集的数字代码所对应的字符。
|
|
@@ -1297,7 +1300,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
1297
1300
|
* @param {string} startString - 起始文本
|
|
1298
1301
|
* @namespace 文本函数
|
|
1299
1302
|
*
|
|
1300
|
-
* @returns {
|
|
1303
|
+
* @returns {boolean} 判断结果
|
|
1301
1304
|
*/
|
|
1302
1305
|
Evaluator.prototype.fnSTARTSWITH = function (text, search) {
|
|
1303
1306
|
search = this.normalizeText(search);
|
|
@@ -1315,7 +1318,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
1315
1318
|
* @param {string} endString - 结束文本
|
|
1316
1319
|
* @namespace 文本函数
|
|
1317
1320
|
*
|
|
1318
|
-
* @returns {
|
|
1321
|
+
* @returns {boolean} 判断结果
|
|
1319
1322
|
*/
|
|
1320
1323
|
Evaluator.prototype.fnENDSWITH = function (text, search) {
|
|
1321
1324
|
search = this.normalizeText(search);
|
|
@@ -1333,7 +1336,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
1333
1336
|
* @param {string} searchText - 搜索文本
|
|
1334
1337
|
* @namespace 文本函数
|
|
1335
1338
|
*
|
|
1336
|
-
* @returns {
|
|
1339
|
+
* @returns {boolean} 判断结果
|
|
1337
1340
|
*/
|
|
1338
1341
|
Evaluator.prototype.fnCONTAINS = function (text, search) {
|
|
1339
1342
|
search = this.normalizeText(search);
|
|
@@ -1403,13 +1406,17 @@ var Evaluator = /** @class */ (function () {
|
|
|
1403
1406
|
/**
|
|
1404
1407
|
* 返回文本字符串中从指定位置开始的特定数目的字符。
|
|
1405
1408
|
*
|
|
1409
|
+
* 示例:`MID("amis.baidu.com", 6, 3)`,
|
|
1410
|
+
*
|
|
1411
|
+
* 返回 `aid`。
|
|
1412
|
+
*
|
|
1406
1413
|
* @example MID(text, from, len)
|
|
1407
1414
|
* @param {string} text - 要处理的文本
|
|
1408
1415
|
* @param {number} from - 起始位置
|
|
1409
1416
|
* @param {number} len - 处理长度
|
|
1410
1417
|
* @namespace 文本函数
|
|
1411
1418
|
*
|
|
1412
|
-
* @returns {
|
|
1419
|
+
* @returns {string} 命中的位置
|
|
1413
1420
|
*/
|
|
1414
1421
|
Evaluator.prototype.fnMID = function (text, from, len) {
|
|
1415
1422
|
text = this.normalizeText(text);
|
|
@@ -1422,7 +1429,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
1422
1429
|
*
|
|
1423
1430
|
* 示例:`/home/amis/a.json`,
|
|
1424
1431
|
*
|
|
1425
|
-
*
|
|
1432
|
+
* 返回:`a.json`。
|
|
1426
1433
|
*
|
|
1427
1434
|
* @example BASENAME(text)
|
|
1428
1435
|
* @param {string} text - 要处理的文本
|
|
@@ -1613,7 +1620,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
1613
1620
|
* @param {date} date 日期对象
|
|
1614
1621
|
* @param {string} unit 比如可以传入 'day'、'month'、'year' 或者 `week` 等等
|
|
1615
1622
|
* @param {string} format 日期格式,可选
|
|
1616
|
-
* @returns {
|
|
1623
|
+
* @returns {any} 新的日期对象, 如果传入 format 则返回格式化后的日期字符串
|
|
1617
1624
|
*/
|
|
1618
1625
|
Evaluator.prototype.fnSTARTOF = function (date, unit, format) {
|
|
1619
1626
|
var md = moment(this.normalizeDate(date)).startOf(unit || 'day');
|
|
@@ -1627,7 +1634,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
1627
1634
|
* @param {date} date 日期对象
|
|
1628
1635
|
* @param {string} unit 比如可以传入 'day'、'month'、'year' 或者 `week` 等等
|
|
1629
1636
|
* @param {string} format 日期格式,可选
|
|
1630
|
-
* @returns {
|
|
1637
|
+
* @returns {any} 新的日期对象, 如果传入 format 则返回格式化后的日期字符串
|
|
1631
1638
|
*/
|
|
1632
1639
|
Evaluator.prototype.fnENDOF = function (date, unit, format) {
|
|
1633
1640
|
var md = moment(this.normalizeDate(date)).endOf(unit || 'day');
|
|
@@ -1910,7 +1917,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
1910
1917
|
* @param {Array<any>} arr 数组
|
|
1911
1918
|
* @namespace 数组
|
|
1912
1919
|
* @example COUNT(arr)
|
|
1913
|
-
* @returns {
|
|
1920
|
+
* @returns {number} 结果
|
|
1914
1921
|
*/
|
|
1915
1922
|
Evaluator.prototype.fnCOUNT = function (value) {
|
|
1916
1923
|
return Array.isArray(value) ? value.length : value ? 1 : 0;
|
|
@@ -1918,11 +1925,17 @@ var Evaluator = /** @class */ (function () {
|
|
|
1918
1925
|
/**
|
|
1919
1926
|
* 数组做数据转换,需要搭配箭头函数一起使用,注意箭头函数只支持单表达式用法。
|
|
1920
1927
|
*
|
|
1928
|
+
* 将数组中的每个元素转换成箭头函数返回的值。
|
|
1929
|
+
*
|
|
1930
|
+
* 示例:
|
|
1931
|
+
*
|
|
1932
|
+
* ARRAYMAP([1, 2, 3], item => item + 1) 得到 [2, 3, 4]。
|
|
1933
|
+
*
|
|
1921
1934
|
* @param {Array<any>} arr 数组
|
|
1922
1935
|
* @param {Function<any>} iterator 箭头函数
|
|
1923
1936
|
* @namespace 数组
|
|
1924
1937
|
* @example ARRAYMAP(arr, item => item)
|
|
1925
|
-
* @returns {
|
|
1938
|
+
* @returns {Array<any>} 返回转换后的数组
|
|
1926
1939
|
*/
|
|
1927
1940
|
Evaluator.prototype.fnARRAYMAP = function (value, iterator) {
|
|
1928
1941
|
var _this = this;
|
|
@@ -1937,11 +1950,15 @@ var Evaluator = /** @class */ (function () {
|
|
|
1937
1950
|
* 数据做数据过滤,需要搭配箭头函数一起使用,注意箭头函数只支持单表达式用法。
|
|
1938
1951
|
* 将第二个箭头函数返回为 false 的成员过滤掉。
|
|
1939
1952
|
*
|
|
1953
|
+
* 示例:
|
|
1954
|
+
*
|
|
1955
|
+
* ARRAYFILTER([1, 2, 3], item => item > 1) 得到 [2, 3]。
|
|
1956
|
+
*
|
|
1940
1957
|
* @param {Array<any>} arr 数组
|
|
1941
1958
|
* @param {Function<any>} iterator 箭头函数
|
|
1942
1959
|
* @namespace 数组
|
|
1943
1960
|
* @example ARRAYFILTER(arr, item => item)
|
|
1944
|
-
* @returns {
|
|
1961
|
+
* @returns {Array<any>} 返回过滤后的数组
|
|
1945
1962
|
*/
|
|
1946
1963
|
Evaluator.prototype.fnARRAYFILTER = function (value, iterator) {
|
|
1947
1964
|
var _this = this;
|
|
@@ -2109,7 +2126,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
2109
2126
|
* @param { String} separator 分隔符
|
|
2110
2127
|
* @namespace 数组
|
|
2111
2128
|
* @example JOIN(arr, string)
|
|
2112
|
-
* @returns {
|
|
2129
|
+
* @returns {string} 结果
|
|
2113
2130
|
*/
|
|
2114
2131
|
Evaluator.prototype.fnJOIN = function (arr, separator) {
|
|
2115
2132
|
if (separator === void 0) { separator = ''; }
|
|
@@ -2147,7 +2164,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
2147
2164
|
*
|
|
2148
2165
|
* 示例:
|
|
2149
2166
|
*
|
|
2150
|
-
* UNIQ([{a: '1'}, {b: '2'}, {a: '1'}]
|
|
2167
|
+
* UNIQ([{a: '1'}, {b: '2'}, {a: '1'}]) 得到 [{a: '1'}, {b: '2'}]。
|
|
2151
2168
|
*
|
|
2152
2169
|
* @param {Array<any>} arr 数组
|
|
2153
2170
|
* @param {string} field 字段
|
package/esm/evalutorForAsync.js
CHANGED
package/esm/filter.js
CHANGED
package/esm/function.js
CHANGED
package/esm/index.js
CHANGED
package/esm/lexer.js
CHANGED
package/esm/parser.js
CHANGED
package/lib/doc.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* amis-formula v6.
|
|
2
|
+
* amis-formula v6.10.0-beta.1
|
|
3
3
|
* Copyright 2021-2024 fex
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -131,7 +131,7 @@ _function.bulkRegisterFunctionDoc([
|
|
|
131
131
|
{
|
|
132
132
|
name: "MAX",
|
|
133
133
|
description: "获取最大值,如果只有一个参数且是数组,则计算这个数组内的值。",
|
|
134
|
-
example: "MAX(num1, num2, ...numN)",
|
|
134
|
+
example: "MAX(num1, num2, ...numN) or MAX([num1, num2, ...numN])",
|
|
135
135
|
params: [
|
|
136
136
|
{
|
|
137
137
|
type: "...number",
|
|
@@ -148,7 +148,7 @@ _function.bulkRegisterFunctionDoc([
|
|
|
148
148
|
{
|
|
149
149
|
name: "MIN",
|
|
150
150
|
description: "获取最小值,如果只有一个参数且是数组,则计算这个数组内的值。",
|
|
151
|
-
example: "MIN(num1, num2, ...numN)",
|
|
151
|
+
example: "MIN(num1, num2, ...numN) or MIN([num1, num2, ...numN])",
|
|
152
152
|
params: [
|
|
153
153
|
{
|
|
154
154
|
type: "...number",
|
|
@@ -165,7 +165,7 @@ _function.bulkRegisterFunctionDoc([
|
|
|
165
165
|
{
|
|
166
166
|
name: "SUM",
|
|
167
167
|
description: "求和,如果只有一个参数且是数组,则计算这个数组内的值。",
|
|
168
|
-
example: "SUM(num1, num2, ...numN)",
|
|
168
|
+
example: "SUM(num1, num2, ...numN) or SUM([num1, num2, ...numN])",
|
|
169
169
|
params: [
|
|
170
170
|
{
|
|
171
171
|
type: "...number",
|
|
@@ -315,7 +315,7 @@ _function.bulkRegisterFunctionDoc([
|
|
|
315
315
|
{
|
|
316
316
|
name: "AVG",
|
|
317
317
|
description: "返回所有参数的平均值,如果只有一个参数且是数组,则计算这个数组内的值。",
|
|
318
|
-
example: "AVG(num1, num2, ...numN)",
|
|
318
|
+
example: "AVG(num1, num2, ...numN) or AVG([num1, num2, ...numN])",
|
|
319
319
|
params: [
|
|
320
320
|
{
|
|
321
321
|
type: "...number",
|
|
@@ -844,7 +844,7 @@ _function.bulkRegisterFunctionDoc([
|
|
|
844
844
|
}
|
|
845
845
|
],
|
|
846
846
|
returns: {
|
|
847
|
-
type: "
|
|
847
|
+
type: "boolean",
|
|
848
848
|
description: "判断结果"
|
|
849
849
|
},
|
|
850
850
|
namespace: "文本函数"
|
|
@@ -866,7 +866,7 @@ _function.bulkRegisterFunctionDoc([
|
|
|
866
866
|
}
|
|
867
867
|
],
|
|
868
868
|
returns: {
|
|
869
|
-
type: "
|
|
869
|
+
type: "boolean",
|
|
870
870
|
description: "判断结果"
|
|
871
871
|
},
|
|
872
872
|
namespace: "文本函数"
|
|
@@ -888,7 +888,7 @@ _function.bulkRegisterFunctionDoc([
|
|
|
888
888
|
}
|
|
889
889
|
],
|
|
890
890
|
returns: {
|
|
891
|
-
type: "
|
|
891
|
+
type: "boolean",
|
|
892
892
|
description: "判断结果"
|
|
893
893
|
},
|
|
894
894
|
namespace: "文本函数"
|
|
@@ -949,7 +949,7 @@ _function.bulkRegisterFunctionDoc([
|
|
|
949
949
|
},
|
|
950
950
|
{
|
|
951
951
|
name: "MID",
|
|
952
|
-
description: "
|
|
952
|
+
description: "返回文本字符串中从指定位置开始的特定数目的字符。\n\n示例:`MID(\"amis.baidu.com\", 6, 3)`,\n\n返回 `aid`。",
|
|
953
953
|
example: "MID(text, from, len)",
|
|
954
954
|
params: [
|
|
955
955
|
{
|
|
@@ -969,14 +969,14 @@ _function.bulkRegisterFunctionDoc([
|
|
|
969
969
|
}
|
|
970
970
|
],
|
|
971
971
|
returns: {
|
|
972
|
-
type: "
|
|
972
|
+
type: "string",
|
|
973
973
|
description: "命中的位置"
|
|
974
974
|
},
|
|
975
975
|
namespace: "文本函数"
|
|
976
976
|
},
|
|
977
977
|
{
|
|
978
978
|
name: "BASENAME",
|
|
979
|
-
description: "返回路径中的文件名。\n\n示例:`/home/amis/a.json`,\n\n
|
|
979
|
+
description: "返回路径中的文件名。\n\n示例:`/home/amis/a.json`,\n\n返回:`a.json`。",
|
|
980
980
|
example: "BASENAME(text)",
|
|
981
981
|
params: [
|
|
982
982
|
{
|
|
@@ -1183,8 +1183,8 @@ _function.bulkRegisterFunctionDoc([
|
|
|
1183
1183
|
}
|
|
1184
1184
|
],
|
|
1185
1185
|
returns: {
|
|
1186
|
-
type: "
|
|
1187
|
-
description: "
|
|
1186
|
+
type: "any",
|
|
1187
|
+
description: "新的日期对象, 如果传入 format 则返回格式化后的日期字符串"
|
|
1188
1188
|
},
|
|
1189
1189
|
namespace: "日期函数"
|
|
1190
1190
|
},
|
|
@@ -1210,8 +1210,8 @@ _function.bulkRegisterFunctionDoc([
|
|
|
1210
1210
|
}
|
|
1211
1211
|
],
|
|
1212
1212
|
returns: {
|
|
1213
|
-
type: "
|
|
1214
|
-
description: "
|
|
1213
|
+
type: "any",
|
|
1214
|
+
description: "新的日期对象, 如果传入 format 则返回格式化后的日期字符串"
|
|
1215
1215
|
},
|
|
1216
1216
|
namespace: "日期函数"
|
|
1217
1217
|
},
|
|
@@ -1606,14 +1606,14 @@ _function.bulkRegisterFunctionDoc([
|
|
|
1606
1606
|
}
|
|
1607
1607
|
],
|
|
1608
1608
|
returns: {
|
|
1609
|
-
type: "
|
|
1609
|
+
type: "number",
|
|
1610
1610
|
description: "结果"
|
|
1611
1611
|
},
|
|
1612
1612
|
namespace: "数组"
|
|
1613
1613
|
},
|
|
1614
1614
|
{
|
|
1615
1615
|
name: "ARRAYMAP",
|
|
1616
|
-
description: "
|
|
1616
|
+
description: "数组做数据转换,需要搭配箭头函数一起使用,注意箭头函数只支持单表达式用法。\n\n将数组中的每个元素转换成箭头函数返回的值。\n\n示例:\n\nARRAYMAP([1, 2, 3], item => item + 1) 得到 [2, 3, 4]。",
|
|
1617
1617
|
example: "ARRAYMAP(arr, item => item)",
|
|
1618
1618
|
params: [
|
|
1619
1619
|
{
|
|
@@ -1628,14 +1628,14 @@ _function.bulkRegisterFunctionDoc([
|
|
|
1628
1628
|
}
|
|
1629
1629
|
],
|
|
1630
1630
|
returns: {
|
|
1631
|
-
type: "
|
|
1632
|
-
description: "
|
|
1631
|
+
type: "Array<any>",
|
|
1632
|
+
description: "返回转换后的数组"
|
|
1633
1633
|
},
|
|
1634
1634
|
namespace: "数组"
|
|
1635
1635
|
},
|
|
1636
1636
|
{
|
|
1637
1637
|
name: "ARRAYFILTER",
|
|
1638
|
-
description: "数据做数据过滤,需要搭配箭头函数一起使用,注意箭头函数只支持单表达式用法。\n将第二个箭头函数返回为 false
|
|
1638
|
+
description: "数据做数据过滤,需要搭配箭头函数一起使用,注意箭头函数只支持单表达式用法。\n将第二个箭头函数返回为 false 的成员过滤掉。\n\n示例:\n\nARRAYFILTER([1, 2, 3], item => item > 1) 得到 [2, 3]。",
|
|
1639
1639
|
example: "ARRAYFILTER(arr, item => item)",
|
|
1640
1640
|
params: [
|
|
1641
1641
|
{
|
|
@@ -1650,8 +1650,8 @@ _function.bulkRegisterFunctionDoc([
|
|
|
1650
1650
|
}
|
|
1651
1651
|
],
|
|
1652
1652
|
returns: {
|
|
1653
|
-
type: "
|
|
1654
|
-
description: "
|
|
1653
|
+
type: "Array<any>",
|
|
1654
|
+
description: "返回过滤后的数组"
|
|
1655
1655
|
},
|
|
1656
1656
|
namespace: "数组"
|
|
1657
1657
|
},
|
|
@@ -1799,7 +1799,7 @@ _function.bulkRegisterFunctionDoc([
|
|
|
1799
1799
|
}
|
|
1800
1800
|
],
|
|
1801
1801
|
returns: {
|
|
1802
|
-
type: "
|
|
1802
|
+
type: "string",
|
|
1803
1803
|
description: "结果"
|
|
1804
1804
|
},
|
|
1805
1805
|
namespace: "数组"
|
|
@@ -1823,7 +1823,7 @@ _function.bulkRegisterFunctionDoc([
|
|
|
1823
1823
|
},
|
|
1824
1824
|
{
|
|
1825
1825
|
name: "UNIQ",
|
|
1826
|
-
description: "数组去重,第二个参数「field」,可指定根据该字段去重。\n\n示例:\n\nUNIQ([{a: '1'}, {b: '2'}, {a: '1'}]
|
|
1826
|
+
description: "数组去重,第二个参数「field」,可指定根据该字段去重。\n\n示例:\n\nUNIQ([{a: '1'}, {b: '2'}, {a: '1'}]) 得到 [{a: '1'}, {b: '2'}]。",
|
|
1827
1827
|
example: "UNIQ([{a: '1'}, {b: '2'}, {a: '1'}], 'x')",
|
|
1828
1828
|
params: [
|
|
1829
1829
|
{
|
package/lib/doc.md
CHANGED
|
@@ -89,7 +89,7 @@
|
|
|
89
89
|
|
|
90
90
|
### MAX
|
|
91
91
|
|
|
92
|
-
用法:`MAX(num1, num2, ...numN)`
|
|
92
|
+
用法:`MAX(num1, num2, ...numN) or MAX([num1, num2, ...numN])`
|
|
93
93
|
|
|
94
94
|
* `num:...number` 数值
|
|
95
95
|
|
|
@@ -99,7 +99,7 @@
|
|
|
99
99
|
|
|
100
100
|
### MIN
|
|
101
101
|
|
|
102
|
-
用法:`MIN(num1, num2, ...numN)`
|
|
102
|
+
用法:`MIN(num1, num2, ...numN) or MIN([num1, num2, ...numN])`
|
|
103
103
|
|
|
104
104
|
* `num:...number` 数值
|
|
105
105
|
|
|
@@ -109,7 +109,7 @@
|
|
|
109
109
|
|
|
110
110
|
### SUM
|
|
111
111
|
|
|
112
|
-
用法:`SUM(num1, num2, ...numN)`
|
|
112
|
+
用法:`SUM(num1, num2, ...numN) or SUM([num1, num2, ...numN])`
|
|
113
113
|
|
|
114
114
|
* `num:...number` 数值
|
|
115
115
|
|
|
@@ -189,7 +189,7 @@
|
|
|
189
189
|
|
|
190
190
|
### AVG
|
|
191
191
|
|
|
192
|
-
用法:`AVG(num1, num2, ...numN)`
|
|
192
|
+
用法:`AVG(num1, num2, ...numN) or AVG([num1, num2, ...numN])`
|
|
193
193
|
|
|
194
194
|
* `num:...number` 要处理的数字
|
|
195
195
|
|
|
@@ -515,7 +515,7 @@
|
|
|
515
515
|
* `text:string` 文本
|
|
516
516
|
* `startString:string` 起始文本
|
|
517
517
|
|
|
518
|
-
返回:`
|
|
518
|
+
返回:`boolean` 判断结果
|
|
519
519
|
|
|
520
520
|
判断字符串(text)是否以特定字符串(startString)开始,是则返回 true,否则返回 false。
|
|
521
521
|
|
|
@@ -526,7 +526,7 @@
|
|
|
526
526
|
* `text:string` 文本
|
|
527
527
|
* `endString:string` 结束文本
|
|
528
528
|
|
|
529
|
-
返回:`
|
|
529
|
+
返回:`boolean` 判断结果
|
|
530
530
|
|
|
531
531
|
判断字符串(text)是否以特定字符串(endString)结束,是则返回 true,否则返回 false。
|
|
532
532
|
|
|
@@ -537,7 +537,7 @@
|
|
|
537
537
|
* `text:string` 文本
|
|
538
538
|
* `searchText:string` 搜索文本
|
|
539
539
|
|
|
540
|
-
返回:`
|
|
540
|
+
返回:`boolean` 判断结果
|
|
541
541
|
|
|
542
542
|
判断参数 1 中的文本是否包含参数 2 中的文本,是则返回 true,否则返回 false。
|
|
543
543
|
|
|
@@ -573,10 +573,14 @@
|
|
|
573
573
|
* `from:number` 起始位置
|
|
574
574
|
* `len:number` 处理长度
|
|
575
575
|
|
|
576
|
-
返回:`
|
|
576
|
+
返回:`string` 命中的位置
|
|
577
577
|
|
|
578
578
|
返回文本字符串中从指定位置开始的特定数目的字符。
|
|
579
579
|
|
|
580
|
+
示例:`MID("amis.baidu.com", 6, 3)`,
|
|
581
|
+
|
|
582
|
+
返回 `aid`。
|
|
583
|
+
|
|
580
584
|
### BASENAME
|
|
581
585
|
|
|
582
586
|
用法:`BASENAME(text)`
|
|
@@ -589,7 +593,7 @@
|
|
|
589
593
|
|
|
590
594
|
示例:`/home/amis/a.json`,
|
|
591
595
|
|
|
592
|
-
|
|
596
|
+
返回:`a.json`。
|
|
593
597
|
|
|
594
598
|
### UUID
|
|
595
599
|
|
|
@@ -714,7 +718,7 @@ DATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '
|
|
|
714
718
|
* `unit:string` 比如可以传入 'day'、'month'、'year' 或者 `week` 等等
|
|
715
719
|
* `format:string` 日期格式,可选
|
|
716
720
|
|
|
717
|
-
返回:`
|
|
721
|
+
返回:`any` 新的日期对象, 如果传入 format 则返回格式化后的日期字符串
|
|
718
722
|
|
|
719
723
|
返回日期的指定范围的开端。
|
|
720
724
|
|
|
@@ -726,7 +730,7 @@ DATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '
|
|
|
726
730
|
* `unit:string` 比如可以传入 'day'、'month'、'year' 或者 `week` 等等
|
|
727
731
|
* `format:string` 日期格式,可选
|
|
728
732
|
|
|
729
|
-
返回:`
|
|
733
|
+
返回:`any` 新的日期对象, 如果传入 format 则返回格式化后的日期字符串
|
|
730
734
|
|
|
731
735
|
返回日期的指定范围的末尾。
|
|
732
736
|
|
|
@@ -936,7 +940,7 @@ DATEMODIFY(A, -2, 'month'),
|
|
|
936
940
|
|
|
937
941
|
* `arr:Array<any>` 数组
|
|
938
942
|
|
|
939
|
-
返回:`
|
|
943
|
+
返回:`number` 结果
|
|
940
944
|
|
|
941
945
|
返回数组的长度。
|
|
942
946
|
|
|
@@ -947,10 +951,16 @@ DATEMODIFY(A, -2, 'month'),
|
|
|
947
951
|
* `arr:Array<any>` 数组
|
|
948
952
|
* `iterator:Array<any>` 箭头函数
|
|
949
953
|
|
|
950
|
-
返回:`
|
|
954
|
+
返回:`Array<any>` 返回转换后的数组
|
|
951
955
|
|
|
952
956
|
数组做数据转换,需要搭配箭头函数一起使用,注意箭头函数只支持单表达式用法。
|
|
953
957
|
|
|
958
|
+
将数组中的每个元素转换成箭头函数返回的值。
|
|
959
|
+
|
|
960
|
+
示例:
|
|
961
|
+
|
|
962
|
+
ARRAYMAP([1, 2, 3], item => item + 1) 得到 [2, 3, 4]。
|
|
963
|
+
|
|
954
964
|
### ARRAYFILTER
|
|
955
965
|
|
|
956
966
|
用法:`ARRAYFILTER(arr, item => item)`
|
|
@@ -958,11 +968,15 @@ DATEMODIFY(A, -2, 'month'),
|
|
|
958
968
|
* `arr:Array<any>` 数组
|
|
959
969
|
* `iterator:Array<any>` 箭头函数
|
|
960
970
|
|
|
961
|
-
返回:`
|
|
971
|
+
返回:`Array<any>` 返回过滤后的数组
|
|
962
972
|
|
|
963
973
|
数据做数据过滤,需要搭配箭头函数一起使用,注意箭头函数只支持单表达式用法。
|
|
964
974
|
将第二个箭头函数返回为 false 的成员过滤掉。
|
|
965
975
|
|
|
976
|
+
示例:
|
|
977
|
+
|
|
978
|
+
ARRAYFILTER([1, 2, 3], item => item > 1) 得到 [2, 3]。
|
|
979
|
+
|
|
966
980
|
### ARRAYFINDINDEX
|
|
967
981
|
|
|
968
982
|
用法:`ARRAYFINDINDEX(arr, item => item === 2)`
|
|
@@ -1063,7 +1077,7 @@ COMPACT([0, 1, false, 2, '', 3]) 得到 [1, 2, 3]。
|
|
|
1063
1077
|
* `arr:Array<any>` 数组
|
|
1064
1078
|
* `separator:String` 分隔符
|
|
1065
1079
|
|
|
1066
|
-
返回:`
|
|
1080
|
+
返回:`string` 结果
|
|
1067
1081
|
|
|
1068
1082
|
数组转成字符串。
|
|
1069
1083
|
|
|
@@ -1098,7 +1112,7 @@ CONCAT(['a', 'b', 'c'], ['1'], ['3']) 得到 ['a', 'b', 'c', '1', '3']。
|
|
|
1098
1112
|
|
|
1099
1113
|
示例:
|
|
1100
1114
|
|
|
1101
|
-
UNIQ([{a: '1'}, {b: '2'}, {a: '1'}]
|
|
1115
|
+
UNIQ([{a: '1'}, {b: '2'}, {a: '1'}]) 得到 [{a: '1'}, {b: '2'}]。
|
|
1102
1116
|
|
|
1103
1117
|
## 编码
|
|
1104
1118
|
|
package/lib/error.js
CHANGED