当前位置: 首页 > wzjs >正文

番禺建设网站哪家好技术外包网站

番禺建设网站哪家好,技术外包网站,合肥专业商业网站,单品网站怎么建设文章目录 前端面试题:一个是铺平的数组改成树的结构问题一解析一问题一解析二前端面试题:for循环100个接口,每次只调3个方法一:使用 `async/await` 和 `Promise`代码解释(1):代码解释(2):1. `fetchApi` 函数2. `concurrentFetch` 函数3. 生成 100 个接口地址4. 每次并…

文章目录

    • 前端面试题:一个是铺平的数组改成树的结构
      • 问题一解析一
      • 问题一解析二
    • 前端面试题:for循环100个接口,每次只调3个
      • 方法一:使用 `async/await` 和 `Promise`
        • 代码解释(1):
        • 代码解释(2):
      • 1. `fetchApi` 函数
      • 2. `concurrentFetch` 函数
      • 3. 生成 100 个接口地址
      • 4. 每次并发调用 3 个接口
      • 总结
      • 方法二:使用递归和 `Promise`
        • 代码解释:
    • 深拷贝 forwardref 用法
      • 深拷贝
        • 概念
        • 实现方法
          • 1. 使用递归实现深拷贝
          • 2. 使用 `JSON.parse` 和 `JSON.stringify` 实现深拷贝
      • `forwardRef`
        • 概念
        • 用法示例
        • 代码解释

1、一个是铺平的数组改成树的结构,递归一下就可以了,第二个是用react写一个短信验证码发送,第三个是链表翻转

2、写个hoc实现传入一个组件,渲染这个组件,在组件染失败的情况下渲染特定的失败组件并上报失败信息,渲染成功上报渲染成功信息,点击上报点击信息

3、for循环100个接口,每次只调3个

4、然后是深拷贝 forwardref用法

前端面试题:一个是铺平的数组改成树的结构

问题一解析一

在前端开发中,将一个铺平的数组转换为树结构是一个常见的需求。通常,铺平的数组中的每个元素会有一个 id 和一个 parentId,通过这两个属性可以确定元素之间的父子关系。下面我们使用递归的方法来实现这个转换。
示例代码

// 定义一个函数,用于将铺平的数组转换为树结构
function arrayToTree(arr, parentId = null) {// 创建一个空数组,用于存储当前层级的子节点const tree = [];// 遍历铺平的数组for (const item of arr) {// 检查当前元素的 parentId 是否等于传入的 parentIdif (item.parentId === parentId) {// 递归调用 arrayToTree 函数,查找当前元素的子节点const children = arrayToTree(arr, item.id);// 如果存在子节点,将子节点添加到当前元素的 children 属性中if (children.length > 0) {item.children = children;}// 将当前元素添加到当前层级的树结构中tree.push(item);}}// 返回当前层级的树结构return tree;
}// 示例铺平数组
const flatArray = [{ id: 1, parentId: null, name: 'Root' },{ id: 2, parentId: 1, name: 'Child 1' },{ id: 3, parentId: 1, name: 'Child 2' },{ id: 4, parentId: 2, name: 'Grandchild 1' },{ id: 5, parentId: 2, name: 'Grandchild 2' }
];// 调用 arrayToTree 函数,将铺平数组转换为树结构
const tree = arrayToTree(flatArray);
// 打印转换后的树结构
console.log(tree);

代码解释
函数定义:arrayToTree 函数接受两个参数,arr 是铺平的数组,parentId 是当前层级的父节点 id,默认为 null,表示根节点。
遍历数组:使用 for…of 循环遍历铺平的数组,对于每个元素,检查其 parentId 是否等于传入的 parentId。
递归查找子节点:如果当前元素的 parentId 等于传入的 parentId,则递归调用 arrayToTree 函数,查找当前元素的子节点。
添加子节点:如果递归调用返回的子节点数组不为空,则将子节点数组添加到当前元素的 children 属性中。
返回树结构:将符合条件的元素添加到当前层级的树结构中,并返回该树结构。
复杂度分析
时间复杂度:,因为对于每个元素,都需要遍历整个数组来查找其子节点。
空间复杂度:,主要用于存储递归调用栈和最终的树结构。

问题一解析二

将一个平铺的数组改成树的结构,可以通过递归的方法来实现。以下是一个示例代码,展示了如何将平铺的数组转换为树的结构:

function arrayToTree(arr, pid = '') {const tree = [];const map = {};// 首先将所有元素存入map中,key为id,value为元素本身arr.forEach(item => {map[item.id] = { ...item, children: [] };});// 然后根据pid来构建树arr.forEach(item => {if (item.pid === pid) {tree.push(map[item.id]);} else if (item.pid in map) {map[item.pid].children.push(map[item.id]);}});return tree;
}// 示例用法
const flatArray = [{ id: '1', pid: '', name: 'root' },{ id: '2', pid: '1', name: 'child1' },{ id: '3', pid: '1', name: 'child2' },{ id: '4', pid: '2', name: 'grandchild1' },{ id: '5', pid: '2', name: 'grandchild2' }
];const tree = arrayToTree(flatArray);
console.log(JSON.stringify(tree, null, 2));

在上述代码中:

  1. arrayToTree函数接受两个参数:arr(平铺的数组)和pid(当前处理的父ID,初始为空字符串表示根节点)。
  2. 首先创建了一个空数组tree用于存放结果,以及一个空对象map用于快速查找元素。
  3. 遍历平铺数组,将所有元素存入map中,同时初始化每个元素的children属性为空数组。
  4. 再次遍历平铺数组,如果当前元素的pid等于pid参数(即当前处理的父ID),则将其添加到结果数组tree中;否则,如果当前元素的pid

文章转载自:

http://eF83JmEH.gfprf.cn
http://MWnHj4OO.gfprf.cn
http://t8TeQe6l.gfprf.cn
http://y1EDF5uk.gfprf.cn
http://aOr2FsJs.gfprf.cn
http://nyXpZjYx.gfprf.cn
http://4YTSM9SG.gfprf.cn
http://CN9mf5Q1.gfprf.cn
http://1zJaKYqo.gfprf.cn
http://7RdKThM9.gfprf.cn
http://AgLihUMo.gfprf.cn
http://dHZxJKxU.gfprf.cn
http://Q2CZJ0Am.gfprf.cn
http://h9yNfN50.gfprf.cn
http://Bg7EKgUn.gfprf.cn
http://IXK4iFFC.gfprf.cn
http://Ge64A6tB.gfprf.cn
http://7RPoUyk6.gfprf.cn
http://NIMA19nL.gfprf.cn
http://1tTmY5QR.gfprf.cn
http://dnfWZTD8.gfprf.cn
http://WyHHtFER.gfprf.cn
http://8o3U1M4h.gfprf.cn
http://DZtAnD2X.gfprf.cn
http://rGN4TmMK.gfprf.cn
http://MYxGxWP5.gfprf.cn
http://30ny1zXa.gfprf.cn
http://2pSyYVUV.gfprf.cn
http://Q6eRGg6X.gfprf.cn
http://Q7uCHeFi.gfprf.cn
http://www.dtcms.com/wzjs/628301.html

相关文章:

  • 平度市城乡建设局网站网站弹窗特效
  • 江西省住房保障建设厅网站做四级题目的网站
  • wordpress做自建站seo 整站优化
  • 百度怎么建立网站云南网站搭建
  • 郑州高校网站建设服务公司wordpress显示上传目录
  • 广州有哪些做网站的公司房屋在线设计工具
  • 网站制作广做网站须知
  • 长沙网站优化外包服务服装企业营销网站建设
  • 软文推广模板南京关键词优化软件
  • 网站开发 商标注册深汕特别合作区面积
  • 搭建网站首页dw怎么导入网站模板
  • 易企秀 旗下 网站建设儿童网站开发 论文
  • 网站开发语言介绍沈阳做人流哪个医院好安全
  • 烟台网站建设找三硕科技网站建设教程小说简介
  • 西安做百度推广网站 怎样备案大良网站设计价格
  • asp 公司网站源码外贸soho网站制作
  • 深圳购物网站建设需要做网站的公司有哪些
  • 建网站要备案申请邮箱账号注册
  • 农业信息门户网站建设方案营销类网站 英文
  • 上海市政建设有限公司网站vi视觉形象设计
  • 宝山php网站开发培训宁波网站推广公司有哪些
  • 异度空间图书馆主题 wordpress阜平网站seo
  • 网站公司用什么软件做网站机刷推广软件
  • 国内设计网站排名管理培训机构
  • 无锡定制化网站建设兴县做网站
  • 图书馆网站建设情况汇报网站内容百度不收录
  • 单页网站建设哪里有提供wordpress 字体库
  • 论学院网站建设项目的进度管理自己如何做电影网站
  • 业网站制作wordpress新闻墙插件
  • 柳市做网站建设编程常用代码大全