TinyMath 函数
编辑TinyMath 函数编辑
TinyMath 提供了一组函数,这些函数可与 Canvas 表达式语言一起使用,以执行复杂的数学计算。继续阅读以获取有关 TinyMath 中可用函数的详细信息,包括每个函数接受的参数、该函数的返回值以及每个函数行为的示例。
大多数函数接受数组并将 JavaScript Math 方法应用于该数组的每个元素。对于接受多个数组作为参数的函数,该函数通常按索引进行计算。
只要内部函数的返回类型与外部函数的可接受参数类型匹配,任何函数都可以被另一个函数包装。
abs( a )编辑
计算数字的绝对值。对于数组,该函数将按索引应用于每个元素。
参数 | 类型 | 描述 |
---|---|---|
a |
number | Array.<number> |
一个数字或一个数字数组 |
返回: number
| Array.<number>
。 a
的绝对值。如果 a
是一个数组,则返回一个包含每个元素绝对值的数组。
示例
abs(-1) // returns 1 abs(2) // returns 2 abs([-1 , -2, 3, -4]) // returns [1, 2, 3, 4]
add( …args )编辑
计算传递到函数中的一个或多个数字/数组的总和。如果至少将一个数字数组传递到函数中,该函数将按索引计算总和。
参数 | 类型 | 描述 |
---|---|---|
…args |
number | Array.<number> |
一个或多个数字或数字数组 |
返回: number
| Array.<number>
。如果 args
仅包含数字,则返回 args
中所有数字的总和。如果 args
包含至少一个数组,则返回一个包含每个索引处元素总和的数组,包括 args
中所有标量数字在每个索引处的计算。
抛出: 如果 args
包含长度不同的数组,则抛出 'Array length mismatch'
示例
add(1, 2, 3) // returns 6 add([10, 20, 30, 40], 10, 20, 30) // returns [70, 80, 90, 100] add([1, 2], 3, [4, 5], 6) // returns [(1 + 3 + 4 + 6), (2 + 3 + 5 + 6)] = [14, 16]
cbrt( a )编辑
计算数字的立方根。对于数组,该函数将按索引应用于每个元素。
参数 | 类型 | 描述 |
---|---|---|
a |
number | Array.<number> |
一个数字或一个数字数组 |
返回: number
| Array.<number>
。 a
的立方根。如果 a
是一个数组,则返回一个包含每个元素立方根的数组。
示例
cbrt(-27) // returns -3 cbrt(94) // returns 4.546835943776344 cbrt([27, 64, 125]) // returns [3, 4, 5]
ceil( a )编辑
计算数字的上限,即向正无穷大舍入数字。对于数组,该函数将按索引应用于每个元素。
参数 | 类型 | 描述 |
---|---|---|
a |
number | Array.<number> |
一个数字或一个数字数组 |
返回: number
| Array.<number>
。 a
的上限。如果 a
是一个数组,则返回一个包含每个元素上限的数组。
示例
ceil(1.2) // returns 2 ceil(-1.8) // returns -1 ceil([1.1, 2.2, 3.3]) // returns [2, 3, 4]
clamp( …a, min, max )编辑
将值限制在给定范围内并返回封闭的可用值。如果只提供 min
,则值仅限于下限。
参数 | 类型 | 描述 |
---|---|---|
…a |
number | Array.<number> |
一个或多个数字或数字数组 |
min |
number | Array.<number> |
(可选) 此函数将返回的最小值。 |
max |
number | Array.<number> |
(可选) 此函数将返回的最大值。 |
返回: number
| Array.<number>
。 min
(包含)和 max
(包含)之间最接近的值。返回一个数组,其中每个索引处的值大于或等于 min
且小于或等于 max
(如果提供)。
抛出:
-
如果
min
和/或max
是长度不同的数组,则抛出'Array length mismatch'
-
如果
max
小于min
,则抛出'Min must be less than max'
示例
clamp(1, 2, 3) // returns 2 clamp([10, 20, 30, 40], 15, 25) // returns [15, 20, 25, 25] clamp(10, [15, 2, 4, 20], 25) // returns [15, 10, 10, 20] clamp(35, 10, [20, 30, 40, 50]) // returns [20, 30, 35, 35] clamp([1, 9], 3, [4, 5]) // returns [clamp([1, 3, 4]), clamp([9, 3, 5])] = [3, 5]
count( a )编辑
返回数组的长度。size 的别名。
参数 | 类型 | 描述 |
---|---|---|
a |
Array.<any> |
任何值的数组 |
返回: number
。数组的长度。
抛出: 如果 a
不是数组,则抛出 'Must pass an array'
。
示例
count([]) // returns 0 count([-1, -2, -3, -4]) // returns 4 count(100) // returns 1
cube( a )编辑
计算数字的立方。对于数组,该函数将按索引应用于每个元素。
参数 | 类型 | 描述 |
---|---|---|
a |
number | Array.<number> |
一个数字或一个数字数组 |
返回: number
| Array.<number>
。 a
的立方。如果 a
是一个数组,则返回一个包含每个元素立方的数组。
示例
cube(-3) // returns -27 cube([3, 4, 5]) // returns [27, 64, 125]
divide( a, b )编辑
将两个数字相除。如果至少将一个数字数组传递到函数中,该函数将按索引应用于每个元素。
参数 | 类型 | 描述 |
---|---|---|
a |
number | Array.<number> |
被除数,一个数字或一个数字数组 |
b |
number | Array.<number> |
除数,一个数字或一个数字数组,b != 0 |
返回: number
| Array.<number>
。如果两者都是数字,则返回 a
和 b
的商。如果 a
或 b
是一个数组,则返回一个包含按索引应用于每个元素的商的数组。
抛出:
-
'Array length mismatch'
如果a
和b
是长度不同的数组 -
'Cannot divide by 0'
如果b
等于 0 或包含 0
示例
divide(6, 3) // returns 2 divide([10, 20, 30, 40], 10) // returns [1, 2, 3, 4] divide(10, [1, 2, 5, 10]) // returns [10, 5, 2, 1] divide([14, 42, 65, 108], [2, 7, 5, 12]) // returns [7, 6, 13, 9]
exp( a )编辑
计算 e^x,其中 e 是欧拉数。对于数组,该函数将按索引应用于每个元素。
参数 | 类型 | 描述 |
---|---|---|
a |
number | Array.<number> |
一个数字或一个数字数组 |
返回: number
| Array.<number>
。返回一个数组,其中包含 e^x
的值,其中 x
是 a
的每个元素(如果 a
是一个数组)。
示例
exp(2) // returns e^2 = 7.3890560989306495 exp([1, 2, 3]) // returns [e^1, e^2, e^3] = [2.718281828459045, 7.3890560989306495, 20.085536923187668]
first( a )编辑
返回数组的第一个元素。如果传入的不是数组,则返回输入。
参数 | 类型 | 描述 |
---|---|---|
a |
Array.<any> |
任何值的数组 |
返回: *
。 a
的第一个元素。如果 a
不是数组,则返回 a
。
示例
first(2) // returns 2 first([1, 2, 3]) // returns 1
fix( a )编辑
计算数字的 fix,即向 0 舍入数字。对于数组,该函数将按索引应用于每个元素。
参数 | 类型 | 描述 |
---|---|---|
a |
number | Array.<number> |
一个数字或一个数字数组 |
返回: number
| Array.<number>
。 a
的 fix。如果 a
是一个数组,则返回一个包含每个元素 fix 的数组。
示例
fix(1.2) // returns 1 fix(-1.8) // returns -1 fix([1.8, 2.9, -3.7, -4.6]) // returns [1, 2, -3, -4]
floor( a )编辑
计算数字的下限,即向负无穷大舍入数字。对于数组,该函数将按索引应用于每个元素。
参数 | 类型 | 描述 |
---|---|---|
a |
number | Array.<number> |
一个数字或一个数字数组 |
返回: number
| Array.<number>
。 a
的下限。如果 a
是一个数组,则返回一个包含每个元素下限的数组。
示例
floor(1.8) // returns 1 floor(-1.2) // returns -2 floor([1.7, 2.8, 3.9]) // returns [1, 2, 3]
last( a )编辑
返回数组的最后一个元素。如果传入的不是数组,则返回输入。
参数 | 类型 | 描述 |
---|---|---|
a |
Array.<any> |
任何值的数组 |
返回: *
。 a
的最后一个元素。如果 a
不是数组,则返回 a
。
示例
last(2) // returns 2 last([1, 2, 3]) // returns 3
log( a, b )编辑
计算数字的对数。对于数组,该函数将按索引应用于每个元素。
参数 | 类型 | 描述 |
---|---|---|
a |
number | Array.<number> |
一个数字或一个数字数组, |
b |
对象 |
(可选) 对数的底数。如果未提供值,则默认底数为 e,并计算自然对数。 |
返回: number
| Array.<number>
。 a
的对数。如果 a
是一个数组,则返回一个包含每个元素对数的数组。
抛出:
-
'Base out of range'
如果b
⇐ 0 -
'Must be greater than 0'
如果a
> 0
示例
log(1) // returns 0 log(64, 8) // returns 2 log(42, 5) // returns 2.322344707681546 log([2, 4, 8, 16, 32], 2) // returns [1, 2, 3, 4, 5]
log10( a )编辑
计算数字以 10 为底的对数。对于数组,该函数将按索引应用于每个元素。
参数 | 类型 | 描述 |
---|---|---|
a |
number | Array.<number> |
一个数字或一个数字数组, |
返回值: number
| Array.<number>
. a
的对数。如果 a
是一个数组,则返回一个包含每个元素以 10 为底的对数的数组。
抛出: 'Must be greater than 0'
如果 a
< 0
示例
log(10) // returns 1 log(100) // returns 2 log(80) // returns 1.9030899869919433 log([10, 100, 1000, 10000, 100000]) // returns [1, 2, 3, 4, 5]
max( …args )edit
查找传递给函数的一个或多个数字/数字数组的最大值。如果至少传递了一个数字数组给函数,则函数将按索引查找最大值。
参数 | 类型 | 描述 |
---|---|---|
…args |
number | Array.<number> |
一个或多个数字或数字数组 |
返回值: number
| Array.<number>
. 如果 args
仅包含数字,则返回所有数字的最大值。如果 args
包含至少一个数组,则返回一个数组,其中包含每个索引处的最大值,包括 args
中所有标量数字在每个索引处的计算。
抛出: 如果 args
包含长度不同的数组,则抛出 'Array length mismatch'
示例
max(1, 2, 3) // returns 3 max([10, 20, 30, 40], 15) // returns [15, 20, 30, 40] max([1, 9], 4, [3, 5]) // returns [max([1, 4, 3]), max([9, 4, 5])] = [4, 9]
mean( …args )edit
查找传递给函数的一个或多个数字/数字数组的平均值。如果至少传递了一个数字数组给函数,则函数将按索引查找平均值。
参数 | 类型 | 描述 |
---|---|---|
…args |
number | Array.<number> |
一个或多个数字或数字数组 |
返回值: number
| Array.<number>
. 如果 args
仅包含数字,则返回所有数字的平均值。如果 args
包含至少一个数组,则返回一个数组,其中包含每个索引处的平均值,包括 args
中所有标量数字在每个索引处的计算。
示例
mean(1, 2, 3) // returns 2 mean([10, 20, 30, 40], 20) // returns [15, 20, 25, 30] mean([1, 9], 5, [3, 4]) // returns [mean([1, 5, 3]), mean([9, 5, 4])] = [3, 6]
median( …args )edit
查找传递给函数的一个或多个数字/数字数组的中位数。如果至少传递了一个数字数组给函数,则函数将按索引查找中位数。
参数 | 类型 | 描述 |
---|---|---|
…args |
number | Array.<number> |
一个或多个数字或数字数组 |
返回值: number
| Array.<number>
. 如果 args
仅包含数字,则返回所有数字的中位数。如果 args
包含至少一个数组,则返回一个数组,其中包含每个索引处的中位数,包括 args
中所有标量数字在每个索引处的计算。
示例
median(1, 1, 2, 3) // returns 1.5 median(1, 1, 2, 2, 3) // returns 2 median([10, 20, 30, 40], 10, 20, 30) // returns [15, 20, 25, 25] median([1, 9], 2, 4, [3, 5]) // returns [median([1, 2, 4, 3]), median([9, 2, 4, 5])] = [2.5, 4.5]
min( …args )edit
查找传递给函数的一个或多个数字/数字数组的最小值。如果至少传递了一个数字数组给函数,则函数将按索引查找最小值。
参数 | 类型 | 描述 |
---|---|---|
…args |
number | Array.<number> |
一个或多个数字或数字数组 |
返回值: number
| Array.<number>
. 如果 args
仅包含数字,则返回所有数字的最小值。如果 a
是一个数组,则返回一个数组,其中包含每个索引处的最小值,包括 args
中所有标量数字在每个索引处的计算。
抛出: 'Array length mismatch'
如果 args
包含不同长度的数组。
示例
min(1, 2, 3) // returns 1 min([10, 20, 30, 40], 25) // returns [10, 20, 25, 25] min([1, 9], 4, [3, 5]) // returns [min([1, 4, 3]), min([9, 4, 5])] = [1, 4]
mod( a, b )edit
两个数字相除后的余数。如果至少传递了一个数字数组给函数,则函数将按索引方式应用于每个元素。
参数 | 类型 | 描述 |
---|---|---|
a |
number | Array.<number> |
被除数,一个数字或一个数字数组 |
b |
number | Array.<number> |
除数,一个数字或一个数字数组,b != 0 |
返回值: number
| Array.<number>
. 如果两者都是数字,则返回 a
除以 b
的余数。如果 a
或 b
是一个数组,则返回一个数组,其中包含按索引方式应用于每个元素的余数。
抛出:
-
'Array length mismatch'
如果a
和b
是长度不同的数组 -
'Cannot divide by 0'
如果b
等于 0 或包含 0
示例
mod(10, 7) // returns 3 mod([11, 22, 33, 44], 10) // returns [1, 2, 3, 4] mod(100, [3, 7, 11, 23]) // returns [1, 2, 1, 8] mod([14, 42, 65, 108], [5, 4, 14, 2]) // returns [5, 2, 9, 0]
mode( …args )edit
查找传递给函数的一个或多个数字/数字数组的众数。如果至少传递了一个数字数组给函数,则函数将按索引查找众数。
参数 | 类型 | 描述 |
---|---|---|
…args |
number | Array.<number> |
一个或多个数字或数字数组 |
返回值: number
| Array.<Array.<number>>
. 如果 args
仅包含数字,则返回所有数字的众数数组。如果 args
包含至少一个数组,则返回一个数组,其中包含每个索引处的众数数组,包括 args
中所有标量数字在每个索引处的计算。
示例
mode(1, 1, 2, 3) // returns [1] mode(1, 1, 2, 2, 3) // returns [1,2] mode([10, 20, 30, 40], 10, 20, 30) // returns [[10], [20], [30], [10, 20, 30, 40]] mode([1, 9], 1, 4, [3, 5]) // returns [mode([1, 1, 4, 3]), mode([9, 1, 4, 5])] = [[1], [4, 5, 9]]
multiply( a, b )edit
将两个数字相乘。如果至少传递了一个数字数组给函数,则函数将按索引方式应用于每个元素。
参数 | 类型 | 描述 |
---|---|---|
a |
number | Array.<number> |
一个数字或一个数字数组 |
b |
number | Array.<number> |
一个数字或一个数字数组 |
返回值: number
| Array.<number>
. 如果两者都是数字,则返回 a
和 b
的乘积。如果 a
或 b
是一个数组,则返回一个数组,其中包含按索引方式应用于每个元素的乘积。
抛出: 'Array length mismatch'
如果 a
和 b
是长度不同的数组
示例
multiply(6, 3) // returns 18 multiply([10, 20, 30, 40], 10) // returns [100, 200, 300, 400] multiply(10, [1, 2, 5, 10]) // returns [10, 20, 50, 100] multiply([1, 2, 3, 4], [2, 7, 5, 12]) // returns [2, 14, 15, 48]
pow( a, b )edit
计算数字的立方根。对于数组,该函数将按索引应用于每个元素。
参数 | 类型 | 描述 |
---|---|---|
a |
number | Array.<number> |
一个数字或一个数字数组 |
b |
number |
|
返回值: number
| Array.<number>
. a
提升到 b
的幂。如果 a
是一个数组,则返回一个数组,其中包含每个元素提升到 b
的幂。
抛出: 'Missing exponent'
如果 b
未提供
示例
pow(2,3) // returns 8 pow([1, 2, 3], 4) // returns [1, 16, 81]
random( a, b )edit
在给定范围内生成一个随机数,其中下限包含在内,上限不包含在内。如果没有传递任何数字,它将返回 0 到 1 之间的数字。如果只传递了一个数字,它将返回 0 到传递的数字之间的数字。
参数 | 类型 | 描述 |
---|---|---|
a |
number |
(可选) 如果 |
b |
number |
(可选) 必须大于 |
返回值: number
. 如果没有传递任何数字,则返回 0 到 1 之间的随机数。如果只传递了一个数字,则返回 0 到 a
之间的随机数。如果传递了两个数字,则返回 a
到 b
之间的随机数。
抛出: 'Min must be greater than max'
如果 a
< 0 且仅传递了 a
,或者如果 a
> b
且同时传递了 a
和 b
示例
random() // returns a random number between 0 (inclusive) and 1 (exclusive) random(10) // returns a random number between 0 (inclusive) and 10 (exclusive) random(-10,10) // returns a random number between -10 (inclusive) and 10 (exclusive)
range( …args )edit
查找传递给函数的一个或多个数字/数字数组的范围。如果至少传递了一个数字数组给函数,则函数将按索引查找范围。
参数 | 类型 | 描述 |
---|---|---|
…args |
number | Array.<number> |
一个或多个数字或数字数组 |
返回值: number
| Array.<number>
. 如果 args
仅包含数字,则返回所有数字的范围值。如果 args
包含至少一个数组,则返回一个数组,其中包含每个索引处的范围值,包括 args
中所有标量数字在每个索引处的计算。
示例
range(1, 2, 3) // returns 2 range([10, 20, 30, 40], 15) // returns [5, 5, 15, 25] range([1, 9], 4, [3, 5]) // returns [range([1, 4, 3]), range([9, 4, 5])] = [3, 5]
range( …args )edit
查找传递给函数的一个或多个数字/数字数组的范围。如果至少传递了一个数字数组给函数,则函数将按索引查找范围。
参数 | 类型 | 描述 |
---|---|---|
…args |
number | Array.<number> |
一个或多个数字或数字数组 |
返回值: number
| Array.<number>
. 如果 args
仅包含数字,则返回所有数字的范围值。如果 args
包含至少一个数组,则返回一个数组,其中包含每个索引处的范围值,包括 args
中所有标量数字在每个索引处的计算。
示例
range(1, 2, 3) // returns 2 range([10, 20, 30, 40], 15) // returns [5, 5, 15, 25] range([1, 9], 4, [3, 5]) // returns [range([1, 4, 3]), range([9, 4, 5])] = [3, 5]
round( a, b )edit
默认情况下将数字四舍五入到最接近的整数,或小数位数(如果作为 b
传递)。对于数组,函数将按索引方式应用于每个元素。
参数 | 类型 | 描述 |
---|---|---|
a |
number | Array.<number> |
一个数字或一个数字数组 |
b |
number |
(可选) 小数位数,默认值:0 |
返回值: number
| Array.<number>
. a
的四舍五入值。如果 a
是一个数组,则返回一个数组,其中包含每个元素的四舍五入值。
示例
round(1.2) // returns 2 round(-10.51) // returns -11 round(-10.1, 2) // returns -10.1 round(10.93745987, 4) // returns 10.9375 round([2.9234, 5.1234, 3.5234, 4.49234324], 2) // returns [2.92, 5.12, 3.52, 4.49]
size( a )edit
返回数组的长度。count 的别名。
参数 | 类型 | 描述 |
---|---|---|
a |
Array.<any> |
任何值的数组 |
返回: number
。数组的长度。
抛出: 'Must pass an array'
如果 a
不是一个数组
示例
size([]) // returns 0 size([-1, -2, -3, -4]) // returns 4 size(100) // returns 1
sqrt( a )edit
计算一个数字的平方根。对于数组,函数将按索引方式应用于每个元素。
参数 | 类型 | 描述 |
---|---|---|
a |
number | Array.<number> |
一个数字或一个数字数组 |
返回值: number
| Array.<number>
. a
的平方根。如果 a
是一个数组,则返回一个数组,其中包含每个元素的平方根。
抛出: 'Unable find the square root of a negative number'
如果 a
< 0
示例
sqrt(9) // returns 3 sqrt(30) //5.477225575051661 sqrt([9, 16, 25]) // returns [3, 4, 5]
square( a )edit
计算一个数字的平方。对于数组,该函数将按索引应用于每个元素。
参数 | 类型 | 描述 |
---|---|---|
a |
number | Array.<number> |
一个数字或一个数字数组 |
返回值: number
| Array.<number>
。 a
的平方。如果 a
是一个数组,则返回一个包含每个元素平方的数组。
示例
square(-3) // returns 9 square([3, 4, 5]) // returns [9, 16, 25]
subtract( a, b )编辑
减去两个数字。如果至少传递了一个数字数组到函数中,则该函数将按索引应用于每个元素。
参数 | 类型 | 描述 |
---|---|---|
a |
number | Array.<number> |
一个数字或一个数字数组 |
b |
number | Array.<number> |
一个数字或一个数字数组 |
返回值: number
| Array.<number>
。如果两者都是数字,则返回 a
和 b
的差,或者返回一个按索引应用于每个元素的差值数组。
抛出: 'Array length mismatch'
如果 a
和 b
是长度不同的数组
示例
subtract(6, 3) // returns 3 subtract([10, 20, 30, 40], 10) // returns [0, 10, 20, 30] subtract(10, [1, 2, 5, 10]) // returns [9, 8, 5, 0] subtract([14, 42, 65, 108], [2, 7, 5, 12]) // returns [12, 35, 52, 96]
sum( …args )编辑
计算传递到函数中的一个或多个数字/数组的总和。如果传递了至少一个数组,则该函数将对一个或多个数字/数字数组以及数组的唯一值进行求和。Sum 接受不同长度的数组。
返回值: number
。一个或多个数字/数字数组的总和,包括数组中的唯一值。
示例
sum(1, 2, 3) // returns 6 sum([10, 20, 30, 40], 10, 20, 30) // returns 160 sum([1, 2], 3, [4, 5], 6) // returns sum(1, 2, 3, 4, 5, 6) = 21 sum([10, 20, 30, 40], 10, [1, 2, 3], 22) // returns sum(10, 20, 30, 40, 10, 1, 2, 3, 22) = 138
unique( a )编辑
计算数组中唯一值的个数。
返回值: number
。数组中唯一值的个数。如果 a
不是数组,则返回 1。
示例
unique(100) // returns 1 unique([]) // returns 0 unique([1, 2, 3, 4]) // returns 4 unique([1, 2, 3, 4, 2, 2, 2, 3, 4, 2, 4, 5, 2, 1, 4, 2]) // returns 5