最大公约数、最小公倍数
最大公约数 gcd
1
| const gcd = (a, b) => a ? gcd(b%a, a) : b;
|
最小公倍数 lcm
依赖于最大公约数 gcd
1
| const lcm = (a, b) => a * b / gcd(a,b);
|
最大值 / 最小值
最大值 max
,输出给定所有数字的最大数字,如果没有参数,则返回 -Infinity
。
1 2 3 4 5 6 7 8 9 10 11 12 13
| const max = (...args) => { if(args.length === 0) return -Infinity; let _max_ = args[0]; for(const a of args) { _max_ = _max_ > a ? _max_ : a; } return _max_; }
max(1,2,3,4,5,890,34,12,56757,12)
max(...[1,2,3,4,5,890,34,12,56757,12])
|
最小值 min
,输出给定所有数字的最小数字,如果没有参数,则返回 Infinity
。
1 2 3 4 5 6 7 8 9 10 11 12 13
| const min = (...args) => { if(args.length === 0) return Infinity; let _min_ = args[0]; for(const a of args) { _min_ = _min_ < a ? _min_ : a; } return _min_; }
min(1,2,3,4,5,890,34,12,56757,12)
min(...[1,2,3,4,5,890,34,12,56757,12])
|
检查 存在性
existy
检查数据是否 存在
,即是否不等于 null
或 undefined
。
1 2 3
| const existy = x => x != null
|
注:松散不等于 !=
会将 null
和 undefined
判定为 一个东西,即 null == undefined
在 JavaScript
中,truthy
(真值)指的是在布尔值上下文中,转换后的值为 true
的值。被定义为假值以外的任何值都为真值。(即所有除 false
、0
、-0
、0n
、""
、null
、undefined
和 NaN
以外的皆为真值)。
1
| const truthy = x => x !== false && x != null && x !== 0 && x !== 0n && x === x && x !== "";
|
falsy
函数同理:
1
| const falsy = x => x === false || x == null || x === 0 || x === 0n || x === "" || x !== x ;
|
生成随机数
随机生成 $m-n$ 之间的整数值
1 2 3 4
| function random(m, n) { return Math.round(Math.random() * (n-m) + m); }
|
斐波那契数列 - 生成器版本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| function* createFibonacci() { let a = 1, b = 1; while(1) { yield a; b = a+b; a = b-a; } }
let fibonacci = createFibonacci(); fibonacci.next() fibonacci.next() fibonacci.next() fibonacci.next() fibonacci.next() fibonacci.next() fibonacci.next()
|
版权声明: 本博客所有文章除特别声明外,均采用
CC BY-SA 4.0 许可协议。著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。