amis-formula 1.3.12 → 1.3.15
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/README.md +1 -1
- package/dist/doc.js +47 -8
- package/dist/doc.md +36 -7
- package/dist/evalutor.d.ts +35 -8
- package/dist/index.js +100 -16
- package/package.json +1 -1
- package/rollup.config.js +3 -1
package/README.md
CHANGED
package/dist/doc.js
CHANGED
|
@@ -121,7 +121,7 @@ exports.doc = [
|
|
|
121
121
|
},
|
|
122
122
|
{
|
|
123
123
|
name: "MAX",
|
|
124
|
-
description: "
|
|
124
|
+
description: "获取最大值,如果只有一个参数且是数组,则计算这个数组内的值",
|
|
125
125
|
example: "MAX(num1, num2, ...numN)",
|
|
126
126
|
params: [
|
|
127
127
|
{
|
|
@@ -138,7 +138,7 @@ exports.doc = [
|
|
|
138
138
|
},
|
|
139
139
|
{
|
|
140
140
|
name: "MIN",
|
|
141
|
-
description: "
|
|
141
|
+
description: "获取最小值,如果只有一个参数且是数组,则计算这个数组内的值",
|
|
142
142
|
example: "MIN(num1, num2, ...numN)",
|
|
143
143
|
params: [
|
|
144
144
|
{
|
|
@@ -155,7 +155,7 @@ exports.doc = [
|
|
|
155
155
|
},
|
|
156
156
|
{
|
|
157
157
|
name: "SUM",
|
|
158
|
-
description: "
|
|
158
|
+
description: "求和,如果只有一个参数且是数组,则计算这个数组内的值",
|
|
159
159
|
example: "SUM(num1, num2, ...numN)",
|
|
160
160
|
params: [
|
|
161
161
|
{
|
|
@@ -305,7 +305,7 @@ exports.doc = [
|
|
|
305
305
|
},
|
|
306
306
|
{
|
|
307
307
|
name: "AVG",
|
|
308
|
-
description: "
|
|
308
|
+
description: "返回所有参数的平均值,如果只有一个参数且是数组,则计算这个数组内的值",
|
|
309
309
|
example: "AVG(num1, num2, ...numN)",
|
|
310
310
|
params: [
|
|
311
311
|
{
|
|
@@ -322,7 +322,7 @@ exports.doc = [
|
|
|
322
322
|
},
|
|
323
323
|
{
|
|
324
324
|
name: "DEVSQ",
|
|
325
|
-
description: "
|
|
325
|
+
description: "返回数据点与数据均值点之差(数据偏差)的平方和,如果只有一个参数且是数组,则计算这个数组内的值",
|
|
326
326
|
example: "DEVSQ(num1, num2, ...numN)",
|
|
327
327
|
params: [
|
|
328
328
|
{
|
|
@@ -356,7 +356,7 @@ exports.doc = [
|
|
|
356
356
|
},
|
|
357
357
|
{
|
|
358
358
|
name: "HARMEAN",
|
|
359
|
-
description: "
|
|
359
|
+
description: "数据点的调和平均值,如果只有一个参数且是数组,则计算这个数组内的值",
|
|
360
360
|
example: "HARMEAN(num1, num2, ...numN)",
|
|
361
361
|
params: [
|
|
362
362
|
{
|
|
@@ -1443,7 +1443,7 @@ exports.doc = [
|
|
|
1443
1443
|
type: "boolean",
|
|
1444
1444
|
description: "结果"
|
|
1445
1445
|
},
|
|
1446
|
-
namespace: "
|
|
1446
|
+
namespace: "数组"
|
|
1447
1447
|
},
|
|
1448
1448
|
{
|
|
1449
1449
|
name: "ARRAYMAP",
|
|
@@ -1465,6 +1465,45 @@ exports.doc = [
|
|
|
1465
1465
|
type: "boolean",
|
|
1466
1466
|
description: "结果"
|
|
1467
1467
|
},
|
|
1468
|
-
namespace: "
|
|
1468
|
+
namespace: "数组"
|
|
1469
|
+
},
|
|
1470
|
+
{
|
|
1471
|
+
name: "COMPACT",
|
|
1472
|
+
description: "数组过滤掉 false、null、0 和 \"\"\n\n示例:\n\nCOMPACT([0, 1, false, 2, '', 3]) 得到 [1, 2, 3]",
|
|
1473
|
+
example: "COMPACT(arr)",
|
|
1474
|
+
params: [
|
|
1475
|
+
{
|
|
1476
|
+
type: "Array<any>",
|
|
1477
|
+
name: "arr",
|
|
1478
|
+
description: "数组"
|
|
1479
|
+
}
|
|
1480
|
+
],
|
|
1481
|
+
returns: {
|
|
1482
|
+
type: "Array<any>",
|
|
1483
|
+
description: "结果"
|
|
1484
|
+
},
|
|
1485
|
+
namespace: "数组"
|
|
1486
|
+
},
|
|
1487
|
+
{
|
|
1488
|
+
name: "JOIN",
|
|
1489
|
+
description: "数组转成字符串\n\n示例:\n\nJOIN(['a', 'b', 'c'], '~') 得到 'a~b~c'",
|
|
1490
|
+
example: "JOIN(arr, string)",
|
|
1491
|
+
params: [
|
|
1492
|
+
{
|
|
1493
|
+
type: "Array<any>",
|
|
1494
|
+
name: "arr",
|
|
1495
|
+
description: "数组"
|
|
1496
|
+
},
|
|
1497
|
+
{
|
|
1498
|
+
type: "String",
|
|
1499
|
+
name: "separator",
|
|
1500
|
+
description: "分隔符"
|
|
1501
|
+
}
|
|
1502
|
+
],
|
|
1503
|
+
returns: {
|
|
1504
|
+
type: "String",
|
|
1505
|
+
description: "结果"
|
|
1506
|
+
},
|
|
1507
|
+
namespace: "数组"
|
|
1469
1508
|
}
|
|
1470
1509
|
]
|
package/dist/doc.md
CHANGED
|
@@ -93,7 +93,7 @@
|
|
|
93
93
|
|
|
94
94
|
返回:`number` 所有传入值中最大的那个
|
|
95
95
|
|
|
96
|
-
|
|
96
|
+
获取最大值,如果只有一个参数且是数组,则计算这个数组内的值
|
|
97
97
|
|
|
98
98
|
### MIN
|
|
99
99
|
|
|
@@ -103,7 +103,7 @@
|
|
|
103
103
|
|
|
104
104
|
返回:`number` 所有传入值中最小的那个
|
|
105
105
|
|
|
106
|
-
|
|
106
|
+
获取最小值,如果只有一个参数且是数组,则计算这个数组内的值
|
|
107
107
|
|
|
108
108
|
### SUM
|
|
109
109
|
|
|
@@ -113,7 +113,7 @@
|
|
|
113
113
|
|
|
114
114
|
返回:`number` 所有传入数值的总和
|
|
115
115
|
|
|
116
|
-
|
|
116
|
+
求和,如果只有一个参数且是数组,则计算这个数组内的值
|
|
117
117
|
|
|
118
118
|
### INT
|
|
119
119
|
|
|
@@ -193,7 +193,7 @@
|
|
|
193
193
|
|
|
194
194
|
返回:`number` 所有数值的平均值
|
|
195
195
|
|
|
196
|
-
|
|
196
|
+
返回所有参数的平均值,如果只有一个参数且是数组,则计算这个数组内的值
|
|
197
197
|
|
|
198
198
|
### DEVSQ
|
|
199
199
|
|
|
@@ -203,7 +203,7 @@
|
|
|
203
203
|
|
|
204
204
|
返回:`number` 所有数值的平均值
|
|
205
205
|
|
|
206
|
-
|
|
206
|
+
返回数据点与数据均值点之差(数据偏差)的平方和,如果只有一个参数且是数组,则计算这个数组内的值
|
|
207
207
|
|
|
208
208
|
### AVEDEV
|
|
209
209
|
|
|
@@ -223,7 +223,7 @@
|
|
|
223
223
|
|
|
224
224
|
返回:`number` 所有数值的平均值
|
|
225
225
|
|
|
226
|
-
|
|
226
|
+
数据点的调和平均值,如果只有一个参数且是数组,则计算这个数组内的值
|
|
227
227
|
|
|
228
228
|
### LARGE
|
|
229
229
|
|
|
@@ -828,7 +828,7 @@ DATEMODIFY(A, -2, 'month')
|
|
|
828
828
|
|
|
829
829
|
判断两个日期,是否第一个日期在第二个日期的后面或者相等
|
|
830
830
|
|
|
831
|
-
##
|
|
831
|
+
## 数组
|
|
832
832
|
|
|
833
833
|
### COUNT
|
|
834
834
|
|
|
@@ -851,3 +851,32 @@ DATEMODIFY(A, -2, 'month')
|
|
|
851
851
|
|
|
852
852
|
数组做数据转换,需要搭配箭头函数一起使用,注意箭头函数只支持单表达式用法。
|
|
853
853
|
|
|
854
|
+
### COMPACT
|
|
855
|
+
|
|
856
|
+
用法:`COMPACT(arr)`
|
|
857
|
+
|
|
858
|
+
* `arr:Array<any>` 数组
|
|
859
|
+
|
|
860
|
+
返回:`Array<any>` 结果
|
|
861
|
+
|
|
862
|
+
数组过滤掉 false、null、0 和 ""
|
|
863
|
+
|
|
864
|
+
示例:
|
|
865
|
+
|
|
866
|
+
COMPACT([0, 1, false, 2, '', 3]) 得到 [1, 2, 3]
|
|
867
|
+
|
|
868
|
+
### JOIN
|
|
869
|
+
|
|
870
|
+
用法:`JOIN(arr, string)`
|
|
871
|
+
|
|
872
|
+
* `arr:Array<any>` 数组
|
|
873
|
+
* `separator:String` 分隔符
|
|
874
|
+
|
|
875
|
+
返回:`String` 结果
|
|
876
|
+
|
|
877
|
+
数组转成字符串
|
|
878
|
+
|
|
879
|
+
示例:
|
|
880
|
+
|
|
881
|
+
JOIN(['a', 'b', 'c'], '~') 得到 'a~b~c'
|
|
882
|
+
|
package/dist/evalutor.d.ts
CHANGED
|
@@ -288,7 +288,7 @@ export declare class Evaluator {
|
|
|
288
288
|
*/
|
|
289
289
|
fnABS(a: number): number;
|
|
290
290
|
/**
|
|
291
|
-
*
|
|
291
|
+
* 获取最大值,如果只有一个参数且是数组,则计算这个数组内的值
|
|
292
292
|
*
|
|
293
293
|
* @example MAX(num1, num2, ...numN)
|
|
294
294
|
* @param {...number} num - 数值
|
|
@@ -298,7 +298,7 @@ export declare class Evaluator {
|
|
|
298
298
|
*/
|
|
299
299
|
fnMAX(...args: Array<any>): any;
|
|
300
300
|
/**
|
|
301
|
-
*
|
|
301
|
+
* 获取最小值,如果只有一个参数且是数组,则计算这个数组内的值
|
|
302
302
|
*
|
|
303
303
|
* @example MIN(num1, num2, ...numN)
|
|
304
304
|
* @param {...number} num - 数值
|
|
@@ -308,7 +308,7 @@ export declare class Evaluator {
|
|
|
308
308
|
*/
|
|
309
309
|
fnMIN(...args: Array<number>): any;
|
|
310
310
|
/**
|
|
311
|
-
*
|
|
311
|
+
* 求和,如果只有一个参数且是数组,则计算这个数组内的值
|
|
312
312
|
*
|
|
313
313
|
* @example SUM(num1, num2, ...numN)
|
|
314
314
|
* @param {...number} num - 数值
|
|
@@ -391,7 +391,7 @@ export declare class Evaluator {
|
|
|
391
391
|
*/
|
|
392
392
|
fnSQRT(n: number): number;
|
|
393
393
|
/**
|
|
394
|
-
*
|
|
394
|
+
* 返回所有参数的平均值,如果只有一个参数且是数组,则计算这个数组内的值
|
|
395
395
|
*
|
|
396
396
|
* @example AVG(num1, num2, ...numN)
|
|
397
397
|
* @param {...number} num - 要处理的数字
|
|
@@ -401,7 +401,7 @@ export declare class Evaluator {
|
|
|
401
401
|
*/
|
|
402
402
|
fnAVG(...args: Array<any>): number;
|
|
403
403
|
/**
|
|
404
|
-
*
|
|
404
|
+
* 返回数据点与数据均值点之差(数据偏差)的平方和,如果只有一个参数且是数组,则计算这个数组内的值
|
|
405
405
|
*
|
|
406
406
|
* @example DEVSQ(num1, num2, ...numN)
|
|
407
407
|
* @param {...number} num - 要处理的数字
|
|
@@ -421,7 +421,7 @@ export declare class Evaluator {
|
|
|
421
421
|
*/
|
|
422
422
|
fnAVEDEV(...args: Array<any>): number | null;
|
|
423
423
|
/**
|
|
424
|
-
*
|
|
424
|
+
* 数据点的调和平均值,如果只有一个参数且是数组,则计算这个数组内的值
|
|
425
425
|
*
|
|
426
426
|
* @example HARMEAN(num1, num2, ...numN)
|
|
427
427
|
* @param {...number} num - 要处理的数字
|
|
@@ -1020,7 +1020,7 @@ export declare class Evaluator {
|
|
|
1020
1020
|
* 返回数组的长度
|
|
1021
1021
|
*
|
|
1022
1022
|
* @param {Array<any>} arr 数组
|
|
1023
|
-
* @namespace
|
|
1023
|
+
* @namespace 数组
|
|
1024
1024
|
* @example COUNT(arr)
|
|
1025
1025
|
* @returns {boolean} 结果
|
|
1026
1026
|
*/
|
|
@@ -1030,9 +1030,36 @@ export declare class Evaluator {
|
|
|
1030
1030
|
*
|
|
1031
1031
|
* @param {Array<any>} arr 数组
|
|
1032
1032
|
* @param {Function<any>} iterator 箭头函数
|
|
1033
|
-
* @namespace
|
|
1033
|
+
* @namespace 数组
|
|
1034
1034
|
* @example ARRAYMAP(arr, item => item)
|
|
1035
1035
|
* @returns {boolean} 结果
|
|
1036
1036
|
*/
|
|
1037
1037
|
fnARRAYMAP(value: any, iterator: any): any[];
|
|
1038
|
+
/**
|
|
1039
|
+
* 数组过滤掉 false、null、0 和 ""
|
|
1040
|
+
*
|
|
1041
|
+
* 示例:
|
|
1042
|
+
*
|
|
1043
|
+
* COMPACT([0, 1, false, 2, '', 3]) 得到 [1, 2, 3]
|
|
1044
|
+
*
|
|
1045
|
+
* @param {Array<any>} arr 数组
|
|
1046
|
+
* @namespace 数组
|
|
1047
|
+
* @example COMPACT(arr)
|
|
1048
|
+
* @returns {Array<any>} 结果
|
|
1049
|
+
*/
|
|
1050
|
+
fnCOMPACT(arr: any[]): any[];
|
|
1051
|
+
/**
|
|
1052
|
+
* 数组转成字符串
|
|
1053
|
+
*
|
|
1054
|
+
* 示例:
|
|
1055
|
+
*
|
|
1056
|
+
* JOIN(['a', 'b', 'c'], '~') 得到 'a~b~c'
|
|
1057
|
+
*
|
|
1058
|
+
* @param {Array<any>} arr 数组
|
|
1059
|
+
* @param { String} separator 分隔符
|
|
1060
|
+
* @namespace 数组
|
|
1061
|
+
* @example JOIN(arr, string)
|
|
1062
|
+
* @returns {String} 结果
|
|
1063
|
+
*/
|
|
1064
|
+
fnJOIN(arr: any[], separator?: string): string;
|
|
1038
1065
|
}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* amis-formula v1.3.
|
|
2
|
+
* amis-formula v1.3.15
|
|
3
3
|
* Copyright 2021-2022 fex
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -2168,6 +2168,12 @@ var Evaluator = /** @class */ (function () {
|
|
|
2168
2168
|
? sessionStorage.getItem(name)
|
|
2169
2169
|
: localStorage.getItem(name);
|
|
2170
2170
|
if (typeof raw === 'string') {
|
|
2171
|
+
// 判断字符串是否一个纯数字字符串,如果是,则对比parse后的值和原值是否相同,
|
|
2172
|
+
// 如果不同则返回原值,因为原值如果是一个很长的纯数字字符串,则 parse 后可能会丢失精度
|
|
2173
|
+
if (/^\d+$/.test(raw)) {
|
|
2174
|
+
var parsed = JSON.parse(raw);
|
|
2175
|
+
return "".concat(parsed) === raw ? parsed : raw;
|
|
2176
|
+
}
|
|
2171
2177
|
return parseJson(raw, raw);
|
|
2172
2178
|
}
|
|
2173
2179
|
return undefined;
|
|
@@ -2364,7 +2370,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
2364
2370
|
return Math.abs(a);
|
|
2365
2371
|
};
|
|
2366
2372
|
/**
|
|
2367
|
-
*
|
|
2373
|
+
* 获取最大值,如果只有一个参数且是数组,则计算这个数组内的值
|
|
2368
2374
|
*
|
|
2369
2375
|
* @example MAX(num1, num2, ...numN)
|
|
2370
2376
|
* @param {...number} num - 数值
|
|
@@ -2378,10 +2384,14 @@ var Evaluator = /** @class */ (function () {
|
|
|
2378
2384
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
2379
2385
|
args[_i] = arguments[_i];
|
|
2380
2386
|
}
|
|
2381
|
-
|
|
2387
|
+
var arr = args;
|
|
2388
|
+
if (args.length === 1 && Array.isArray(args[0])) {
|
|
2389
|
+
arr = args[0];
|
|
2390
|
+
}
|
|
2391
|
+
return Math.max.apply(Math, arr.map(function (item) { return _this.formatNumber(item); }));
|
|
2382
2392
|
};
|
|
2383
2393
|
/**
|
|
2384
|
-
*
|
|
2394
|
+
* 获取最小值,如果只有一个参数且是数组,则计算这个数组内的值
|
|
2385
2395
|
*
|
|
2386
2396
|
* @example MIN(num1, num2, ...numN)
|
|
2387
2397
|
* @param {...number} num - 数值
|
|
@@ -2395,10 +2405,14 @@ var Evaluator = /** @class */ (function () {
|
|
|
2395
2405
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
2396
2406
|
args[_i] = arguments[_i];
|
|
2397
2407
|
}
|
|
2398
|
-
|
|
2408
|
+
var arr = args;
|
|
2409
|
+
if (args.length === 1 && Array.isArray(args[0])) {
|
|
2410
|
+
arr = args[0];
|
|
2411
|
+
}
|
|
2412
|
+
return Math.min.apply(Math, arr.map(function (item) { return _this.formatNumber(item); }));
|
|
2399
2413
|
};
|
|
2400
2414
|
/**
|
|
2401
|
-
*
|
|
2415
|
+
* 求和,如果只有一个参数且是数组,则计算这个数组内的值
|
|
2402
2416
|
*
|
|
2403
2417
|
* @example SUM(num1, num2, ...numN)
|
|
2404
2418
|
* @param {...number} num - 数值
|
|
@@ -2412,7 +2426,11 @@ var Evaluator = /** @class */ (function () {
|
|
|
2412
2426
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
2413
2427
|
args[_i] = arguments[_i];
|
|
2414
2428
|
}
|
|
2415
|
-
|
|
2429
|
+
var arr = args;
|
|
2430
|
+
if (args.length === 1 && Array.isArray(args[0])) {
|
|
2431
|
+
arr = args[0];
|
|
2432
|
+
}
|
|
2433
|
+
return arr.reduce(function (sum, a) { return sum + _this.formatNumber(a) || 0; }, 0);
|
|
2416
2434
|
};
|
|
2417
2435
|
/**
|
|
2418
2436
|
* 将数值向下取整为最接近的整数
|
|
@@ -2523,7 +2541,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
2523
2541
|
return Math.sqrt(this.formatNumber(n));
|
|
2524
2542
|
};
|
|
2525
2543
|
/**
|
|
2526
|
-
*
|
|
2544
|
+
* 返回所有参数的平均值,如果只有一个参数且是数组,则计算这个数组内的值
|
|
2527
2545
|
*
|
|
2528
2546
|
* @example AVG(num1, num2, ...numN)
|
|
2529
2547
|
* @param {...number} num - 要处理的数字
|
|
@@ -2537,10 +2555,14 @@ var Evaluator = /** @class */ (function () {
|
|
|
2537
2555
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
2538
2556
|
args[_i] = arguments[_i];
|
|
2539
2557
|
}
|
|
2540
|
-
|
|
2558
|
+
var arr = args;
|
|
2559
|
+
if (args.length === 1 && Array.isArray(args[0])) {
|
|
2560
|
+
arr = args[0];
|
|
2561
|
+
}
|
|
2562
|
+
return (this.fnSUM.apply(this, arr.map(function (item) { return _this.formatNumber(item); })) / arr.length);
|
|
2541
2563
|
};
|
|
2542
2564
|
/**
|
|
2543
|
-
*
|
|
2565
|
+
* 返回数据点与数据均值点之差(数据偏差)的平方和,如果只有一个参数且是数组,则计算这个数组内的值
|
|
2544
2566
|
*
|
|
2545
2567
|
* @example DEVSQ(num1, num2, ...numN)
|
|
2546
2568
|
* @param {...number} num - 要处理的数字
|
|
@@ -2557,7 +2579,11 @@ var Evaluator = /** @class */ (function () {
|
|
|
2557
2579
|
if (args.length === 0) {
|
|
2558
2580
|
return null;
|
|
2559
2581
|
}
|
|
2560
|
-
var
|
|
2582
|
+
var arr = args;
|
|
2583
|
+
if (args.length === 1 && Array.isArray(args[0])) {
|
|
2584
|
+
arr = args[0];
|
|
2585
|
+
}
|
|
2586
|
+
var nums = arr.map(function (item) { return _this.formatNumber(item); });
|
|
2561
2587
|
var sum = nums.reduce(function (sum, a) { return sum + a || 0; }, 0);
|
|
2562
2588
|
var mean = sum / nums.length;
|
|
2563
2589
|
var result = 0;
|
|
@@ -2585,7 +2611,11 @@ var Evaluator = /** @class */ (function () {
|
|
|
2585
2611
|
if (args.length === 0) {
|
|
2586
2612
|
return null;
|
|
2587
2613
|
}
|
|
2588
|
-
var
|
|
2614
|
+
var arr = args;
|
|
2615
|
+
if (args.length === 1 && Array.isArray(args[0])) {
|
|
2616
|
+
arr = args[0];
|
|
2617
|
+
}
|
|
2618
|
+
var nums = arr.map(function (item) { return _this.formatNumber(item); });
|
|
2589
2619
|
var sum = nums.reduce(function (sum, a) { return sum + a || 0; }, 0);
|
|
2590
2620
|
var mean = sum / nums.length;
|
|
2591
2621
|
var result = 0;
|
|
@@ -2596,7 +2626,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
2596
2626
|
return result / nums.length;
|
|
2597
2627
|
};
|
|
2598
2628
|
/**
|
|
2599
|
-
*
|
|
2629
|
+
* 数据点的调和平均值,如果只有一个参数且是数组,则计算这个数组内的值
|
|
2600
2630
|
*
|
|
2601
2631
|
* @example HARMEAN(num1, num2, ...numN)
|
|
2602
2632
|
* @param {...number} num - 要处理的数字
|
|
@@ -2613,7 +2643,11 @@ var Evaluator = /** @class */ (function () {
|
|
|
2613
2643
|
if (args.length === 0) {
|
|
2614
2644
|
return null;
|
|
2615
2645
|
}
|
|
2616
|
-
var
|
|
2646
|
+
var arr = args;
|
|
2647
|
+
if (args.length === 1 && Array.isArray(args[0])) {
|
|
2648
|
+
arr = args[0];
|
|
2649
|
+
}
|
|
2650
|
+
var nums = arr.map(function (item) { return _this.formatNumber(item); });
|
|
2617
2651
|
var den = 0;
|
|
2618
2652
|
for (var _a = 0, nums_3 = nums; _a < nums_3.length; _a++) {
|
|
2619
2653
|
var num = nums_3[_a];
|
|
@@ -3470,7 +3504,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
3470
3504
|
* 返回数组的长度
|
|
3471
3505
|
*
|
|
3472
3506
|
* @param {Array<any>} arr 数组
|
|
3473
|
-
* @namespace
|
|
3507
|
+
* @namespace 数组
|
|
3474
3508
|
* @example COUNT(arr)
|
|
3475
3509
|
* @returns {boolean} 结果
|
|
3476
3510
|
*/
|
|
@@ -3482,7 +3516,7 @@ var Evaluator = /** @class */ (function () {
|
|
|
3482
3516
|
*
|
|
3483
3517
|
* @param {Array<any>} arr 数组
|
|
3484
3518
|
* @param {Function<any>} iterator 箭头函数
|
|
3485
|
-
* @namespace
|
|
3519
|
+
* @namespace 数组
|
|
3486
3520
|
* @example ARRAYMAP(arr, item => item)
|
|
3487
3521
|
* @returns {boolean} 结果
|
|
3488
3522
|
*/
|
|
@@ -3495,6 +3529,56 @@ var Evaluator = /** @class */ (function () {
|
|
|
3495
3529
|
return _this.callAnonymousFunction(iterator, [item, index]);
|
|
3496
3530
|
});
|
|
3497
3531
|
};
|
|
3532
|
+
/**
|
|
3533
|
+
* 数组过滤掉 false、null、0 和 ""
|
|
3534
|
+
*
|
|
3535
|
+
* 示例:
|
|
3536
|
+
*
|
|
3537
|
+
* COMPACT([0, 1, false, 2, '', 3]) 得到 [1, 2, 3]
|
|
3538
|
+
*
|
|
3539
|
+
* @param {Array<any>} arr 数组
|
|
3540
|
+
* @namespace 数组
|
|
3541
|
+
* @example COMPACT(arr)
|
|
3542
|
+
* @returns {Array<any>} 结果
|
|
3543
|
+
*/
|
|
3544
|
+
Evaluator.prototype.fnCOMPACT = function (arr) {
|
|
3545
|
+
if (Array.isArray(arr)) {
|
|
3546
|
+
var resIndex = 0;
|
|
3547
|
+
var result = [];
|
|
3548
|
+
for (var _i = 0, arr_1 = arr; _i < arr_1.length; _i++) {
|
|
3549
|
+
var item = arr_1[_i];
|
|
3550
|
+
if (item) {
|
|
3551
|
+
result[resIndex++] = item;
|
|
3552
|
+
}
|
|
3553
|
+
}
|
|
3554
|
+
return result;
|
|
3555
|
+
}
|
|
3556
|
+
else {
|
|
3557
|
+
return [];
|
|
3558
|
+
}
|
|
3559
|
+
};
|
|
3560
|
+
/**
|
|
3561
|
+
* 数组转成字符串
|
|
3562
|
+
*
|
|
3563
|
+
* 示例:
|
|
3564
|
+
*
|
|
3565
|
+
* JOIN(['a', 'b', 'c'], '~') 得到 'a~b~c'
|
|
3566
|
+
*
|
|
3567
|
+
* @param {Array<any>} arr 数组
|
|
3568
|
+
* @param { String} separator 分隔符
|
|
3569
|
+
* @namespace 数组
|
|
3570
|
+
* @example JOIN(arr, string)
|
|
3571
|
+
* @returns {String} 结果
|
|
3572
|
+
*/
|
|
3573
|
+
Evaluator.prototype.fnJOIN = function (arr, separator) {
|
|
3574
|
+
if (separator === void 0) { separator = ''; }
|
|
3575
|
+
if (Array.isArray(arr)) {
|
|
3576
|
+
return arr.join(separator);
|
|
3577
|
+
}
|
|
3578
|
+
else {
|
|
3579
|
+
return '';
|
|
3580
|
+
}
|
|
3581
|
+
};
|
|
3498
3582
|
Evaluator.defaultFilters = {};
|
|
3499
3583
|
return Evaluator;
|
|
3500
3584
|
}());
|
package/package.json
CHANGED
package/rollup.config.js
CHANGED
|
@@ -30,6 +30,7 @@ export default {
|
|
|
30
30
|
plugins: [
|
|
31
31
|
isForLib && terser()
|
|
32
32
|
],
|
|
33
|
+
strict: !isForLib,
|
|
33
34
|
footer: isForLib ? `var evaluate = formula.evaluate;
|
|
34
35
|
var momentFormat = formula.momentFormat;
|
|
35
36
|
var parse = formula.parse;` : '',
|
|
@@ -67,7 +68,8 @@ export default {
|
|
|
67
68
|
json(),
|
|
68
69
|
resolve({
|
|
69
70
|
jsnext: true,
|
|
70
|
-
main: true
|
|
71
|
+
main: true,
|
|
72
|
+
browser: true
|
|
71
73
|
}),
|
|
72
74
|
typescript({
|
|
73
75
|
typescript: require('typescript')
|