I am an ECMAScript toolbox like handybox.
Provides APIs not found in native JavaScript, involving Object, Array, Number, String, Time, and common tools, as well as support for use in Node.js
1、Download from npm
npm install -s @zinliao/handybox
2、Use in your code
let handybox = require('@zinliao/handybox');
3、Happy to use all APIs
Online: Github - handybox
zObject | zArray | zNumber | zString | zTime | zTool | zData |
---|---|---|---|---|---|---|
pickNeedKey | deduplication | currency | upperFirst | getMyTime | debounce | Queue |
serialization | pushAndShift | midian | strBoolToBool | - | dataType | - |
- | max | - | strNumRangeToArray | - | - | - |
- | min | - | - | - | - | - |
- | removeSpecItem | - | - | - | - | - |
- | in | - | - | - | - | - |
API Name | Default Params | optional(default) | Chained call |
---|---|---|---|
pickNeedKey | obj(Object) keys(Array) |
isKeepKey(false) | x |
serialization | obj(Object) | x | x |
- pickNeedKey(obj, keys, isKeepKey)
let zObject = require('../zObject/index');
let obj1 = {
a: 'a',
b: 'b',
c: 'c'
};
// { a: 'a', c: 'c' }
zObject.pickNeedKey(obj1, ['a', 'c']);
// { a: 'a' }
zObject.pickNeedKey(obj1, ['a', 'd']);
// { a: 'a', d: '' }
zObject.pickNeedKey(obj1, ['a', 'd'], true);
- serialization(obj)
let zObject = require('../zObject/index');
let obj1 = {
a: 'a',
b: 'b',
c: 'c'
};
// a=a&b=b&c=c
console.log(zObject.serialization(obj1));
API Name | Default Params | optional(default) | Chained call |
---|---|---|---|
deduplication | - | keepEmpty(false) | √ |
pushAndShift | item | max(0) | √ |
max | - | - | × |
min | - | - | × |
removeSpecItem | index(Number) | item(Number|String) | √ |
in | item(Any) | isBackIndex(false) | x |
- deduplication(keepEmpty)
let handybox = require('../index');
let a = [1,3,5,'',3,1];
// [1,3,5]
a.deduplication();
// [1,3,5,'']
a.deduplication(true);
- pushAndShift(item, max)
let handybox = require('../index');
let a = [1];
// [1,2]
a.pushAndShift(2);
// [2,3]
a.pushAndShift(3, 2);
- max & min
let handybox = require('../index');
let a = [5,7,3,9,1,11,0];
// 11
a.max();
// 0
a.min();
- removeSpecItem(index, item)
let handybox = require('../index');
let a = [1, 2, 3],
b = [1, 2, 3];
// [1, 3]
a.removeSpecItem(1);
// [1, 2]
a.removeSpecItem(null, 3);
- in(item, isBackInde)
let handy = require('../index');
let a = [1, '2', 3];
// false
console.log(a.in(2));
// false
console.log(a.in(4));
// true
console.log(a.in('2'));
// 1
console.log(a.in('2', true));
API Name | Default Params | optional(default) | Chained call |
---|---|---|---|
currency | - | short(false) fixed(2) |
× |
midian | target(Number) | fixed(-1) | × |
- currency(short, fixed)
let handybox = require('../index');
let _int1 = 123456,
_int2 = 123456.789,
_int3 = -12345,
_int4 = -12345.789;
// 123,456
_int1.currency();
// 123.46k
_int1.currency(true);
// 123.5k
_int1.currency(true, 1);
// 123,456.789
_int2.currency();
// -123,456
_int3.currency();
// -123,456.789
_int4.currency();
- midian(target)
let handybox = require('../index');
let start = 10, end = -5;
// 2.5
start.midian(end)
// 3
start.midian(end, 0)
// 0
start.midian('-5')
API Name | Default Params | Optional Params(default) | Chained call |
---|---|---|---|
upperFirst | - | - | × |
strBoolToBool | - | - | x |
strNumRangeToArray | - | - | x |
- upperFirst
let handybox = require('../index');
let str1 = 'hello world';
// Hello world
str1.upperFirst();
- strBoolToBool
let handybox = require('../index');
let str2 = 'false';
// boolean
typeof str2.strBoolToBool();
- strNumRangeToArray
let handybox = require('../index');
let str3 = '1,2,3-5';
// [ '1', '2', '3', '4', '5' ]
console.log(str3.strNumRangeToArray())
API Name | Default Params | Optional Params(default) | Chained call |
---|---|---|---|
getMyTime | - | format(null) timestamp(null) area(EN) |
× |
- getMyTime(format, timestamp, area)
format
Input | Output |
---|---|
YYYY|yyyy|year|年 | 2018 |
MM|month|月 | 12 |
DD|date|日 | 25 |
HH|hour|时 | 09 |
mm|minute|分 | 10 |
ss|second|秒 | 50 |
ms|millisecond|毫秒 | 247 |
day | EN: Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday CN: 日, 一, 二, 三, 四, 五, 六 |
area
Input | Is Default |
---|---|
EN | √ |
CN | × |
let zTime = require('../index')['zTime'];
let time1 = zTime.getMyTime('YYYY-MM-DD HH:mm:ss 星期day', null, 'CN');
// 2018-11-26 21:56:46 星期一
time1;
let time2 = zTime.getMyTime('YYYY-MM-DD HH:mm:ss 星期day', 1514736000000, 'CN');
// 2018-01-01 00:00:00 星期一
time2;
API Name | Default Params | Optional Params(default) | Chained call |
---|---|---|---|
debounce | func(Function) delay(Number) |
× | |
dataType | data(Any) | isWitchType(null) | x |
- debounce(func, delay = 300)
let handybox = require('../index.js'),
zTime = handybox.zTime,
zTool = handybox.zTool;
// debounce
let count = 0, delay = 1000,
debounceLog = zTool.debounce(log, delay);
function log() {
let now = zTime.getMyTime('HH:mm:ss');
console.log(`count:${count}`);
console.log(`Time:${now}`);
}
function main() {
count < 5 ? setTimeout(_ => {
count++;
debounceLog();
main()
}, 0) : console.log('====== Over ======');
}
console.log('====== Start ======');
log();
main();
<!-- all console log like this -->
====== Start ======
count:0
Time:2019-11-02 15:13:24
====== Over ======
count:5
Time:2019-11-02 15:13:25
- dataType(data, isWhichType = null)
let handybox = require('../../index'),
zTool = handybox.zTool;
console.log(zTool.dataType('String')); // String
console.log(zTool.dataType(123456789)); // Number
console.log(zTool.dataType(false)); // Boolean
console.log(zTool.dataType(undefined)); // Undefined
console.log(zTool.dataType(null)); // Null
console.log(zTool.dataType(BigInt(100000000000000))); // BigInt
console.log(zTool.dataType(Symbol('SYMBOL'))); // Symbol
console.log(zTool.dataType({})); // Object
console.log(zTool.dataType(new Array(10))); // Array
console.log(zTool.dataType(function(){})); // Function
Data Strutures | Methods |
---|---|
Queue | isEmpty() first() last() length() enqueue(el) dequeue() toString() clear() |
- Queue
let handybox = require('../../index'),
Queue = handybox.zData.Queue;
let queue = new Queue();
queue.enqueue(1); // [1]
queue.enqueue(2); // [1,2]
queue.enqueue(3); // [1,2,3]
queue.dequeue(); // [2,3]
console.log(queue.isEmpty()) // false
console.log(queue.length()) // 2
console.log(queue.first()) // 2
queue.enqueue(4); // [2,3,4]
queue.enqueue(5); // [2,3,4,5]
queue.enqueue(6); // [2,3,4,5,6]
queue.dequeue(); // [3,4,5,6]
console.log(queue.last()) // 6
queue.enqueue(7); // [3,4,5,6,7]
console.log(queue.toString()); // 3,4,5,6,7
queue.clear(); // []
console.log(queue.toString(null)); // []