数组工具类 - ikArray
关于处理数组的一些常用方法
引入方式
import { ikArray } from 'iking-utils'
listToString 使用方法
数组格式化成字符串并返回
示例
javascript
ikArray.listToString(data?.row.departments, 'deptName', ',')
参数说明
参数值 | 类型 | 参数值说明 |
---|---|---|
data?.row.departments | Array | 需要格式化的数组 |
'deptName' | String | 取的字段名称 |
',' | String | 格式化后的分割符号 |
图片示例
listGroupByKey 使用方法
数组根据某个字段进行排序,排序后结果为升序
示例
javascript
const list = [
{ name: '九黎', age: 14 },
{ name: '凤微', age: 11 },
{ name: '夜影', age: 15 },
{ name: '白雪', age: 18 }
]
const sortArr = ikArray.listGroupByKey(list, 'age', true)
<!-- console.log sortArr -->
[
{ name: '凤微', age: 11 },
{ name: '九黎', age: 14 },
{ name: '夜影', age: 15 },
{ name: '白雪', age: 18 },
]
参数说明
参数值 | 类型 | 参数值说明 |
---|---|---|
list | Array | 需要排序的数组 |
'age' | String | 根据排序的字段 |
true | Boolean | 返回的是否是数组(注:false 返回的是 { 11: [{ name: '凤微', age: 11 }], 14: [{ name: '九黎', age: 14 }], 15: [{ name: '夜影', age: 15 }], 18: [{ name: '白雪', age: 18 }], } ) |
flatArr 使用方法
数组无论嵌套多少层,全部扁平化
示例
javascript
const list = [
{ name: "九黎", age: 14 },
[
{ name: "凤微", age: 11 },
[
{ name: "夜影", age: 15 },
[
{ name: "花花", age: 3 },
{ name: "丫丫", age: 5 },
],
],
{ name: "白雪", age: 18 },
],
[
{ name: "安安", age: 3 },
{ name: "绝尘", age: 5 },
],
];
const array = ikArray.flatArr(list, 3);
<!-- console.log array-->
// [
// { name: "九黎", age: 14 },
// { name: "凤微", age: 11 },
// { name: "夜影", age: 15 },
// { name: "花花", age: 3 },
// { name: "丫丫", age: 5 },
// { name: "白雪", age: 18 },
// { name: "安安", age: 3 },
// { name: "绝尘", age: 5 },
// ]
参数说明
参数值 | 类型 | 参数值说明 |
---|---|---|
list | Array | 需要排序的数组 |
3 | Number | 深度 |
proxyArr 使用方法
适用数据量不是很大的情况,如果数组长度超过10000则不建议使用 仅代理Get
TIP
可用于逆向访问数组元素但是逆向取用赋值不生效会给数组新增一条数据,代理后没有.length属性,
示例
vue
const list = [
{ name: '九黎', age: 14 },
{ name: '凤微', age: 11 },
{ name: '夜影', age: 15 },
{ name: '白雪', age: 18 }
]
const array = ikArray.proxyArr(list);
<!-- console.log array[-1]
{ name: '白雪', age: 18 }-->
array[-1] = { id: '1323', name: '23432', age: 22 }
<!-- console.log array
{
0: { name: '九黎', age: 14 },
1: { name: '凤微', age: 11 },
2: { name: '夜影', age: 15 },
3: { name: '白雪', age: 18 },
-1: { id: '1323', name: '23432', age: 22 }
}
-->
参数说明
参数值 | 类型 | 参数值说明 |
---|---|---|
list | Array | 需要代理的数组 |
proxyArrAll 使用方法
适用数据量不是很大的情况,如果数组长度超过6000则不建议使用 get set全代理
TIP
可用于逆向访问数组元素,也可以逆向赋值,代理后没有.length属性
示例
vue
const list = [
{ name: '九黎', age: 14 },
{ name: '凤微', age: 11 },
{ name: '夜影', age: 15 },
{ name: '白雪', age: 18 }
]
const array = ikArray.proxyArr(list);
<!--
console.log array[-1]
{ name: '白雪', age: 18 }
-->
array[-2] = { id: '1323', name: '23432', age: 22 }
<!-- console.log array
{
0: { name: '九黎', age: 14 },
1: { name: '凤微', age: 11 },
2: { id: '1323', name: '23432', age: 22 },
3: { name: '白雪', age: 18 },
}
-->
参数说明
参数值 | 类型 | 参数值说明 |
---|---|---|
list | Array | 需要代理的数组 |
realArr 使用方法
过滤掉 空数组、空对象、null、undefined、''
示例
vue
const list = [
{ name: '九黎', age: 14 },
{ name: '凤微', age: 11 },
{ name: '安安', age: 3 },
{ name: '绝尘', age: 5 },
null
]
const array = ikArray.realArr(list);
<!-- console.log array-->
[
{ name: '九黎', age: 14 },
{ name: '凤微', age: 11 },
{ name: '安安', age: 3 },
{ name: '绝尘', age: 5 },
]
参数说明
参数值 | 类型 | 参数值说明 |
---|---|---|
list | Array | 需要过滤的数组 |
dedupe 使用方法
根据数组中的某个字段去重
示例
vue
const list = [
{ id: '1', name: '九离', age: 14 },
{ id: '2', name: '凤微', age: 11 },
{ id: '1', name: '安安', age: 3 },
{ id: '3', name: '绝尘', age: 5 },
]
const array = ikArray.dedupe(list, 'id');
<!-- console.log array-->
[
{ name: '九黎', age: 14 },
{ name: '凤微', age: 11 },
{ name: '绝尘', age: 5 },
]
参数说明
参数值 | 类型 | 参数值说明 |
---|---|---|
list | Array | 需要过滤的数组 |
'id' | String | 去重标识字段 |