347617796@qq.com 6bf8965d07 钉钉版小程序 4 năm trước cách đây
..
esm 6bf8965d07 钉钉版小程序 4 năm trước cách đây
lib 6bf8965d07 钉钉版小程序 4 năm trước cách đây
README.md 6bf8965d07 钉钉版小程序 4 năm trước cách đây
package.json 6bf8965d07 钉钉版小程序 4 năm trước cách đây

README.md

util

antv 开发的轻量级工具方法库。

安装下载

tnpm i --save @antv/util

// 所有的 api 是都这么引入,名字不同而已
import { each, get } from '@antv/util';

each(arr, (item, idx) => {
  
});

const x = get(obj, 'a.b', '');

API 文档

目前使用到的、且推荐使用的 API 文档,不在文档内的不建议使用。

后续方法添加到文档需要经过审核:

  1. ts 类型定义是否完善
  2. 单测是否覆盖
  3. 文档实例是否覆盖全部能力

推荐使用的 API 文档如下:

  • array
    • contains
    • difference
    • map
    • find
    • findIndex
    • firstValue
    • filter
    • flatten
    • flattenDeep
    • getRange
    • pull
    • pullAt
    • sortBy
    • valuesOfKey
    • head
    • last
    • reduce
    • remove
    • sortBy
    • union
    • uniq
    • toArray
    • groupBy
    • group
    • startsWith
    • endsWith
    • every
    • some
    • indexOf
  • event

    • getWrapBehavior
    • wrapBehavior
  • object

    • clone
    • has
    • hasKey
    • keys
    • isMatch
    • forIn
    • values
    • mapValues
    • mapKeys
    • get
    • set
    • groupBy
    • isEqual
    • isEqualWith
    • pick
  • string

    • lowerCase
    • upperCase
    • substitute
    • upperFirst
    • lowerFirst
    • toString
    • uniqueId
  • type

    • getType
    • isArguments
    • isArray
    • isArrayLike
    • isBoolean
    • isDate
    • isError
    • isFunction
    • isFinite
    • isNil
    • isNull
    • isNumber
    • isObject
    • isObjectLike
    • isPlainObject
    • isPrototype
    • isType
    • isElement
    • isRegExp
    • isString
    • isUndefined
    • isEmpty
  • function

    • debounce
    • throttle
    • noop
    • identity
    • memoize
    • noop
    • size
  • format

    • number2color
    • parseRadius: 将数值转换成矩形四个角对应的 radius
    • toArray
    • toString
  • math

    • clamp
    • fixedBase
    • isDecimal
    • isEven
    • isInteger
    • isNegative
    • isNumberEqual
    • isOdd
    • isPositive
    • maxBy
    • minBy
    • toDegree
    • toInteger
    • toRadian
  • animate

    • requestAnimationFrame
    • clearAnimationFrame
  • other

    • augment
    • debounce
    • mix
    • deepMix
    • each
    • extend

      实例

TODO 完善上述各个方法的使用实例。

  • contains
import { contains } from '@antv/util';

const has = contains([1, 2, 3], 1);
  • startsWith
import { startsWith } from '@antv/util';

startsWith([1, 2, 3], 1);
// true

startsWith('abc', 'b');
// false
  • endsWith
import { endsWith } from '@antv/util';

endsWith([1, 2, 3], 1);
// false

endsWith('abc', 'c');
// true
  • groupBy
import { groupBy } from '@antv/util';

groupBy([6.1, 4.2, 6.3], Math.floor);
// => { '4': [4.2], '6': [6.1, 6.3] }

// 根据元素键值来分组
groupBy([ { user: 'lily' }, { user: 'lucy' } ], 'user');
  • group
import { groupBy } from '@antv/util';

group([6.1, 4.2, 6.3], Math.floor);
// => [ [4.2], [6.1, 6.3] ]

group([ { user: 'lily' }, { user: 'lucy' } ], 'user');
// [ [{ user: 'lily' }], [{ user: 'lucy' }] ]
  • memoize

缓存方法的执行结构,一般用于耗时的计算方法。

import { memoize } from '@antv/util';

function max(...args) {
  return Math.max(...args);
}

// 第二个参数,是将变量变成 key,如果没有,则直接取第一个参数作为 key
const mmax = memoize(max, (...args) => args.join('-'));

mmax(1, 2, 3, 4, 5);
  • isFinite

判断是否是有限数

import { isFinite } from '@antv/util';

isFinite(3);
// => true

isFinite('3');
// => false
  • set

按照 path 给 obj 赋值。方法是 mutable 的。

import { set } from '@antv/util';

set({ a: { b: { c: 1 } } }, 'a.b', 100);
// return the original object.