Skip to content

数组工具类 - ikArray

关于处理数组的一些常用方法

引入方式

import { ikArray } from 'iking-utils'

listToString 使用方法

数组格式化成字符串并返回

示例

javascript
ikArray.listToString(data?.row.departments, 'deptName', ',')

参数说明

参数值类型参数值说明
data?.row.departmentsArray需要格式化的数组
'deptName'String取的字段名称
','String格式化后的分割符号

图片示例ik_array.png

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 }, 
  ]

参数说明

参数值类型参数值说明
listArray需要排序的数组
'age'String根据排序的字段
trueBoolean返回的是否是数组(注: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 },
  // ]

参数说明

参数值类型参数值说明
listArray需要排序的数组
3Number深度

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 }
  }
  -->

参数说明

参数值类型参数值说明
listArray需要代理的数组

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 },
  }
  -->

参数说明

参数值类型参数值说明
listArray需要代理的数组

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 },
  ]

参数说明

参数值类型参数值说明
listArray需要过滤的数组

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 },
  ]

参数说明

参数值类型参数值说明
listArray需要过滤的数组
'id'String去重标识字段