使用文档

arrToTree(arr, idField = 'id', parentField = 'parentId', childrenField = 'children')

将数组转换为树形结构

参数

  • arr (Array): 要转换的数组
  • idField (String): 节点 ID 字段名 (默认为 'id')
  • parentField (String): 父节点 ID 字段名 (默认为 'parentId')
  • childrenField (String): 子节点数组字段名 (默认为 'children')

返回值

  • (Array): 树形结构数组

示例

const arr = [
  { id: 1, parentId: null, name: 'Node 1' },
  { id: 2, parentId: 1, name: 'Node 2' },
  { id: 3, parentId: 1, name: 'Node 3' },
  { id: 4, parentId: 2, name: 'Node 4' },
  { id: 5, parentId: 2, name: 'Node 5' },
  { id: 6, parentId: 3, name: 'Node 6' },
  { id: 7, parentId: null, name: 'Node 7' },
];

const tree = arrToTree(arr);

console.log(tree);
// [
//   {
//     id: 1,
//     parentId: null,
//     name: 'Node 1',
//     children: [
//       { id: 2, parentId: 1, name: 'Node 2', children: [
//         { id: 4, parentId: 2, name: 'Node 4', children: [] },
//         { id: 5, parentId: 2, name: 'Node 5', children: [] }
//       ] },
//       { id: 3, parentId: 1, name: 'Node 3', children: [
//         { id: 6, parentId: 3, name: 'Node 6', children: [] }
//       ] }
//     ]
//   },
//   { id: 7, parentId: null, name: 'Node 7', children: [] }
// ]

treeToArray(tree, idKey = 'id', childrenKey = 'children')

将树形结构转换为数组结构

参数

  • tree (Array): 树形结构数据,每个对象包含 idchildren 属性,children 属性为子节点数组
  • idKey (String): 节点标识属性的键名 (默认为 'id')
  • childrenKey (String): 子节点数组属性的键名 (默认为 'children')

返回值

  • (Array): 数组结构数据,每个对象包含所有原始节点属性以及 level 属性表示节点所在层级

示例

const tree = [
  {
    id: 1,
    name: 'Node 1',
    children: [
      { id: 2, name: 'Node 2', children: [
        { id: 4, name: 'Node 4', children: [] },
        { id: 5, name: 'Node 5', children: [] }
      ] },
      { id: 3, name: 'Node 3', children: [
        { id: 6, name: 'Node 6', children: [] }
      ] }
    ]
  },
  { id: 7, name: 'Node 7', children: [] }
];

const arr = treeToArray(tree);

console.log(arr);
// [
//   { id: 1, name: 'Node 1', level: 0 },
//   { id: 2, name: 'Node 2', level: 1 },
//   { id: 4, name: 'Node 4', level: 2 },
//   { id: 5, name: 'Node 5', level: 2 },
//   { id: 3, name: 'Node 3', level: 1 },
//   { id: 6, name: 'Node 6', level: 2 },
//   { id: 7, name: 'Node 7', level: 0 }
// ]

isEmptyArray(arr)

判断数组是否为空

参数

  • arr (Array): 要判断的数组

返回值

  • (boolean): 如果数组为空则返回 true,否则返回 false

示例

console.log(isEmptyArray([])); // true
console.log(isEmptyArray([1, 2, 3])); // false

isNotEmptyArray(arr)

判断数组是否不为空

参数

  • arr (Array): 要判断的数组

返回值

  • (boolean): 如果数组不为空则返回 true,否则返回 false

示例

console.log(isNotEmptyArray([])); // false
console.log(isNotEmptyArray([1, 2, 3])); // true

mergeArrays(...arrays)

将多个数组合并成一个新数组

参数

  • ...arrays (Array): 要合并的数组

返回值

  • (Array): 合并后的新数组

示例

console.log(mergeArrays([1, 2], [3, 4], [5, 6])); // [1, 2, 3, 4, 5, 6]

sumArray(arr)

计算数组中所有元素的和

参数

  • arr (Array): 要计算的数组

返回值

  • (number): 数组中所有元素的和

示例

console.log(sumArray([1, 2, 3])); // 6

flattenArray(arr)

将二维数组转换为一维数组

参数

  • arr (Array): 要转换的二维数组

返回值

  • (Array): 转换后的一维数组

示例

console.log(flattenArray([[1, 2], [3, 4], [5, 6]])); // [1, 2, 3, 4, 5, 6]

shuffleArray(arr)

将数组元素随机打乱

参数

  • arr (Array): 要打乱的数组

返回值

  • (Array): 打乱后的新数组

示例

console.log(shuffleArray([1, 2, 3, 4, 5, 6])); // [6, 2, 1, 4, 5, 3]

removeDuplicates(arr)

删除数组中的重复元素

参数

  • arr (Array): 要处理的数组

返回值

  • (Array): 删除重复元素后的新数组

示例

console.log(removeDuplicates([1, 2, 3, 2, 1])); // [1, 2, 3]

maxArray(arr)

找出数组中的最大值

参数

  • arr (Array): 要处理的数组

返回值

  • (number|null): 数组中的最大值,如果数组为空则返回 null

示例

console.log(maxArray([1, 2, 3])); // 3
console.log(maxArray([])); // null

minArray(arr)

找出数组中的最小值

参数

  • arr (Array): 要处理的数组

返回值

  • (number|null): 数组中的最小值,如果数组为空则返回 null

示例

console.log(minArray([1, 2, 3])); // 1
console.log(minArray([])); // null

averageArray(arr)

计算数组中所有元素的平均值

参数

  • arr (Array): 要计算的数组

返回值

  • (number|null): 数组中所有元素的平均值,如果数组为空则返回 null

示例

console.log(averageArray([1, 2, 3])); // 2
console.log(averageArray([])); // null

removeEmpty(arr)

去除数组中的空值

参数

  • arr (Array): 待处理的数组

返回值

  • (Array): 去除空值后的新数组

示例

console.log(removeEmpty([1, 2, '', 3, null, 4])); // [1, 2, 3, 4]

hasIntersection(arr1, arr2)

判断两个数组是否有交集

参数

  • arr1 (any[]): 第一个数组
  • arr2 (any[]): 第二个数组

返回值

  • (boolean): 是否存在交集

示例

console.log(hasIntersection([1, 2, 3], [3, 4, 5])); // true
console.log(hasIntersection([1, 2, 3], [4, 5, 6])); // false

isArray(varible)

判断变量是否为数组类型

参数

  • varible (*): 要检查的变量

返回值

  • (boolean): 是否为数组类型

示例

console.log(isArray([1, 2, 3])); // true
console.log(isArray(123)); // false
数组操作工具库:JavaScript 数组常用操作函数集合

原文地址: https://www.cveoy.top/t/topic/lKNk 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录