参考链接:
awesome-micro-npm-packages
NPM 数组模块学习与使用
类型 | 仓库地址 | 描述 |
---|---|---|
数组 | is-sorted |
一个检查数组是否排序的小型模块 |
数组 | array-first |
获取数组的第一个元素,可以传递一个长度参数,返回从头部开始指定长度的元素的数组 |
数组 | array-last |
获取数组的最后一个元素,可以传递一个长度参数,返回从尾部开始指定长度的元素的数组 |
数组 | arr-flatten |
递归扁平化数组。特性:如果元素是数组,递归数组,如果不是数组,则加入到新数组中,最后返回 |
数组 | dedupe |
数组去重: 特性:支持字符型、数值型简单数组;数组对象,可传入判断方法执行判断 key |
数组 | array-range |
产生指定范围的密集数组,可用于函数式编程 |
数组 | arr-diff |
返回第一个数组的唯一值,比较时使用严格相等。特性:如果第二个参数不是数组,则无效返回原数组。实现:遍历数组,相同元素舍弃,存在多个数组,则循环多次 |
数组 | filled-array |
使用指定的元素,生成数组,可以传递一个函数返回特定的元素 |
数组 | map-array |
遍历对象数组的元素 key value 加入到数组中 |
数组 | in-array |
如果值存在于数组中,返回 true ; 比 indexOf 速度更快,前不用担心 null 的问题 |
数组 | unordered-array-remove |
有效的移除数组元素,而不进行分割;算法实现元素最后一位出栈,对于元素进行交换,如果是最后的元素,直接返回 |
数组 | mirrarray |
通过数组的 value 快速创建 key-value 的对象, 键值重名 |
数组 | group-array |
将对象数组分组到列表中 |
实现细节
+号运算符隐式转换
1 | +"12" |
数组赋值
1 | // 从数组尾部,截取 n 长度,赋值给新数组 |
简单递归
1 | // 如果元素是数组,递归数组,如果不是数组,则加入到新数组中,最后返回 |
传递可选参数(函数)
1 | // 判断参数是否是函数 |
判断key是否属于 [‘string’, ‘number’, ‘boolean’, ‘undefined’] 或 null 中的一种
1 | /** |
检查同一个 key
中不能有多个 value
实现思路,用对象存储已经保存的 key
1 | const nonOverlappingKey = element => { |