0.4.3 • Published 3 years ago

@zinliao/handybox v0.4.3

Weekly downloads
58
License
MIT
Repository
github
Last release
3 years ago

Who am I ?

I am an ECMAScript toolbox like handybox.

What type of function I have ?

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

How to own me ?

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

Do I have documentation ?

Online: Github - handybox

zObjectzArrayzNumberzStringzTimezToolzData
pickNeedKeydeduplicationcurrencyupperFirstgetMyTimedebounceQueue
serializationpushAndShiftmidianstrBoolToBool-dataType-
-max-strNumRangeToArray---
-min-----
-removeSpecItem-----
-in-----

zObject

API NameDefault Paramsoptional(default)Chained call
pickNeedKeyobj(Object)keys(Array)isKeepKey(false)x
serializationobj(Object)xx
  • 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));

zArray

API NameDefault Paramsoptional(default)Chained call
deduplication-keepEmpty(false)
pushAndShiftitemmax(0)
max--×
min--×
removeSpecItemindex(Number)item(Number|String)
initem(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));

zNumber

API NameDefault Paramsoptional(default)Chained call
currency-short(false)fixed(2)×
midiantarget(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')

zString

API NameDefault ParamsOptional 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())

zTime

API NameDefault ParamsOptional Params(default)Chained call
getMyTime-format(null)timestamp(null)area(EN)×
  • getMyTime(format, timestamp, area)

format

InputOutput
YYYY|yyyy|year|2018
MM|month|12
DD|date|25
HH|hour|09
mm|minute|10
ss|second|50
ms|millisecond|毫秒247
dayEN: Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday CN: 日, 一, 二, 三, 四, 五, 六

area

InputIs 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;

zTool

API NameDefault ParamsOptional Params(default)Chained call
debouncefunc(Function) delay(Number)×
dataTypedata(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

zData

Data StruturesMethods
QueueisEmpty() 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));  // []
0.4.3

3 years ago

0.4.1

4 years ago

0.4.2

4 years ago

0.4.0

4 years ago

0.3.11

5 years ago

0.3.10

5 years ago

0.3.9

5 years ago

0.3.8

5 years ago

0.3.7

5 years ago

0.3.6

5 years ago

0.3.5

5 years ago

0.3.4

5 years ago

0.3.3

5 years ago

0.3.2

5 years ago

0.3.0

5 years ago

0.2.1

5 years ago

0.2.0

5 years ago

0.1.1

5 years ago

0.1.0

5 years ago

0.0.1

5 years ago