Add random

This commit is contained in:
Andros Fenollosa 2022-02-06 22:26:49 +01:00
parent 05e384ecca
commit cdd6a48b47
3 changed files with 59 additions and 4 deletions

View File

@ -8,16 +8,26 @@ Simple functional functions common to any development in Typescript or JavaScrip
- **uniqValuesArray**: Creates a duplicate-free version of an array.
- **cloneJSON**: Clone JSON.
- **updateJSON**: Returns a JSON with an updated value.
- **getRandom**: Returns a random number from a range, with an optional number of decimal places.
## Example
```typescript
import * as fn from 'fnTools'
```javascript
import * as fn from 'fnTools.js';
fn.getRandom(0, 6);
// 2
fn.range(4);
// [0, 1, 2, 3, 4]
```
## CDN
```html
<script type="module" src="https://cdn.jsdelivr.net/gh/tanrax/fn-js/dist/fnTools.min.js"></script>
```
## Compile
Install Typescript

26
dist/fnTools.js vendored
View File

@ -1,7 +1,7 @@
define("fnTools", ["require", "exports"], function (require, exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.cloneJSON = exports.uniqValuesArray = exports.updateJSON = exports.range = exports.dec = exports.inc = void 0;
exports.getRandom = exports.cloneJSON = exports.uniqValuesArray = exports.updateJSON = exports.range = exports.dec = exports.inc = void 0;
/**
* Increase the value of a `number`.
*
@ -16,7 +16,7 @@ define("fnTools", ["require", "exports"], function (require, exports) {
* inc(5, 3)
* // => 8
*
* dec(7.3)
* inc(7.3)
* // => 8.3
*
*/
@ -130,4 +130,26 @@ define("fnTools", ["require", "exports"], function (require, exports) {
return JSON.parse(JSON.stringify(json));
}
exports.cloneJSON = cloneJSON;
/**
* Return random number.
*
* @param {number} min - Minimum number. It is inclusive.
* @param {number} max - Maximum number. It is inclusive.
* @param {number} decimals - Number of decimals. Default 0.
* @return {number}
* @example
*
* getRandom(0, 4)
* // => 3 (Maybe)
*
* getRandom(0, 10, 2)
* // => 8.31 (Maybe)
*
*/
function getRandom(min, max, decimals = 0) {
const minRandom = Math.ceil(min);
const maxRandom = Math.floor(max);
return (Math.random() * (maxRandom - minRandom + 1) + minRandom).toFixed(decimals);
}
exports.getRandom = getRandom;
});

View File

@ -132,4 +132,27 @@ export function uniqValuesArray(array: any[]): any[] {
*/
export function cloneJSON(json: JSON): JSON {
return JSON.parse(JSON.stringify(json));
}
/**
* Return random number.
*
* @param {number} min - Minimum number. It is inclusive.
* @param {number} max - Maximum number. It is inclusive.
* @param {number} decimals - Number of decimals. Default 0.
* @return {number}
* @example
*
* getRandom(0, 4)
* // => 3 (Maybe)
*
* getRandom(0, 10, 2)
* // => 8.31 (Maybe)
*
*/
export function getRandom(min, max, decimals=0) {
const minRandom = Math.ceil(min);
const maxRandom = Math.floor(max);
return (Math.random() * (maxRandom - minRandom + 1) + minRandom).toFixed(decimals);
}