own-js
Version:
自家前端交流在项目开发中构建的JS工具库,内含项目中最常用的JS工具函数
208 lines (175 loc) • 3.75 kB
Markdown
自家前端交流构建的JS工具库,内含丰富的常用的JS函数
```
npm i own-js@latest
```
```
import {combineDistinct} from 'own-js'
const res = combineDistinct([ 1, 2, 3 ], [ 1, 2, 4 ], [ 1, 2, 5 ])
// [ 1, 2, 3, 4, 5 ]
```
> 数组去重
- 参数:若干个数组
- 返回值:去重后的数组
> 示例
```js
const res = combineDistinct([ 1, 2, 3 ], [ 1, 2, 4 ], [ 1, 2, 5 ])
// [ 1, 2, 3, 4, 5 ]
```
> 去重数组-对象数组,根据对象的某个字段进行去重
- source 原始数组
- property 根据该属性去重
> 示例
```js
// 用法如下
const datas = [
{
name: "liu",
type: "1"
},
{
name: "wang",
type: "2"
},
{
name: "wang",
type: "1"
}
]
console.log(arrayDistinct(datas,'name'))
```
> 排序数组-对数组某个对象按照某个字段来排序
- property 排序字段
- isAsc 排序方式,默认升序
> 示例
```js
let arr1 = [
{ count: 1, name: '小米' },
{ count: 3, name: '华为' },
{ count: 2, name: '苹果' }
]
// sort() 方法用原地算法对数组的元素进行排序,并返回数组。
const res = arr1.sort(sortBy('count', false))
// 结果
// [
// {
// "count": 3,
// "name": "华为"
// },
// {
// "count": 2,
// "name": "苹果"
// },
// {
// "count": 1,
// "name": "小米"
// }
// ]
```
> 数组分组-对数组对象进行分组
- source 原始数组
- property 分组属性
> 示例
```
let people = [
{ name: 'Alice', age: 21 },
{ name: 'Max', age: 20 },
{ name: 'Jane', age: 20 }
]
let groupedPeople = groupBy(people, 'age')
// 结果
// {
// 20: [
// { name: 'Max', age: 20 },
// { name: 'Jane', age: 20 }
// ],
// 21: [{ name: 'Alice', age: 21 }]
// }
```
> 过滤数组(支持递归过滤)
- source 原始数组
- filters 过滤条件(数组)
- property 根据该属性过滤
- children 子节点属性名,无子节点不用传或者传空
> 示例
```js
const menus1 = [
{
title: '添加1级',
permission: 'add',
children: [
{
title: '添加2级',
permission: 'add1-2',
children: [
{
title: '添加3级',
permission: 'add1-3'
},
{
title: '添加2-3',
permission: 'add2-3'
}
]
},
{
title: '添加2-2',
permission: 'add2-2'
}
]
}, {
title: '修改',
permission: 'edit'
}, {
title: '删除',
permission: 'delete'
}, {
title: '查询',
permission: 'query'
}
]
const myPermissions1 = [ 'add', 'query', 'add1-2', 'add1-3' ]
const p1 = filterBy(menus1, myPermissions1, 'permission', 'children')
// 结果
// [
// {
// "title": "添加1级",
// "permission": "add",
// "children": [
// {
// "title": "添加2级",
// "permission": "add1-2",
// "children": [
// {
// "title": "添加3级",
// "permission": "add1-3"
// }
// ]
// }
// ]
// },
// {
// "title": "查询",
// "permission": "query"
// }
// ]
```
> 身份证号校验
- idcard 身份证号
- 验证成功返回空字符串,验证失败返回错误消息
> 示例
```js
validateIdCard('110110198801011234')
```
## 事件