美文网首页
2024-03-12 记录一个展开数组的方法

2024-03-12 记录一个展开数组的方法

作者: 网恋被骗二块二 | 来源:发表于2024-03-11 16:26 被阅读0次

来源:本来打算写一个递归展开,突然有点懒得写就随便问了下GPT,然后看到AI提供的展开多维数组的案例,借鉴改造了一下
注意需要克隆原数组,堆栈地址的影响

展开树状结构数组

const expendArray = (data: any[]) => {
  const cloneData = cloneDeep(data);
  const result = [];
  // 以原数组的长度作为循环条件,当所有值被删除后,长度为0,条件判断为false
  while(cloneData?.length) {
    // shift() 删除数组的第一个元素并且返回被删除的元素
    const item = cloneData.shift();
    if(item?.children && item?.children?.length) {
      // 如果该元素存在子项,则展开并追加到元素组头部
      cloneData.unshift(...item?.children);
      // 可有可无,删除children属性保持新数组的干净(个人)
      delete item.children;
    }
    // 添加到新数组
    result.push(item);
  }
  return result;
}

展开多维数组

const expendArray = (data: any[]) => {
  const cloneData = cloneDeep(data);
  const result = [];
  while(cloneData?.length) {
    const item = cloneData.shift();
    if(Array.isArray(item)) {
      cloneData.unshift(...item);
    } else {
      result.push(item);
    }
  }
  return result;
}

相关文章

网友评论

      本文标题:2024-03-12 记录一个展开数组的方法

      本文链接:https://www.haomeiwen.com/subject/aubmzdtx.html