创作之树常青——我的创作纪念日

在这里插入图片描述

🤍 前端开发工程师、技术日更博主、已过CET6
🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1
🕠 牛客高级专题作者、打造专栏《前端面试必备》《2024面试高频手撕题》
🍚 蓝桥云课签约作者、上架课程《Vue.js 和 Egg.js 开发企业级健康管理项目》《带你从入门到实战全面掌握 uni-app》

机缘巧合

最初成为创作者的初心,对于我来说,主要是为了分享在实战项目中的经验,以及日常学习过程中的记录和心得。

在实战项目中,我遇到了许多问题和挑战,通过不断地尝试和探索,我找到了解决方案,并积累了许多经验和技巧。我想将这些经验和技巧分享给更多的开发者,帮助他们少走弯路,提高工作效率。

在日常学习过程中,我也会遇到各种技术问题,通过不断地学习和尝试,我找到了解决方法,并将其记录下来。我想将这些解决方法分享给更多的学习者,帮助他们解决问题,共同进步。

此外,我也希望通过文章进行技术交流。在写作过程中,我需要将复杂的问题和解决方案用简洁明了的语言表达出来,这有助于我更好地理解问题,并提高自己的表达能力。我也希望更多的开发者能够参与技术交流,共同探讨技术问题,一起成长。

总的来说,我的初心是通过分享实战项目经验、学习记录和技术交流,帮助更多的开发者提高技术水平,共同进步。

学有所获

  • 收获了5k+粉丝
  • 访问量也达到了37w+
    在这里插入图片描述
  • 23年总共写了264篇文章

在这里插入图片描述

日常积累

我的创作主要是技术稿件,我的工作是前端开发,并且我不断学习新的技术。这三者之间的关系可以概括为相辅相成、互相促进

  • 首先,我的技术创作可以促进我的工作效率和质量。通过写作技术稿件,我可以系统地总结和梳理自己的学习成果和实践经验,从而更好地将所学的知识和技能应用于前端开发工作。这有助于提高我的工作效率和代码质量。

  • 其次,我的工作可以提供丰富的实践经验和素材,为我的技术创作提供支持和帮助。在实际工作过程中,我会遇到各种技术问题,解决问题的过程就是我学习和成长的过程。将这些学习和解决问题的过程记录下来,就是一篇篇宝贵的技术稿件。

  • 此外,不断学习新的技术也是我工作的要求。前端开发是一个不断更新的领域,新的技术、方法和工具层出不穷。通过学习新的技术,我可以保持自己的技术与时俱进,不被淘汰。同时,学习新的技术也可以为我的工作提供更多的思路和方法,帮助我更好地完成工作。

综上所述,我的创作、工作和学习三者之间的关系是互相促进、相辅相成的。希望我能继续保持这种积极的状态,不断地学习和成长,在前端开发的领域中越走越远。

成就之路

在过去写得最好的一段代码是实现一个列表转树形结构。

它的知识点:

  • 数据结构:了解树形结构的概念,包括节点、父节点、子节点和层次关系。
  • 递归:掌握递归的概念和使用方法,用于处理树形结构中的嵌套关系。
  • 遍历:熟悉列表的遍历方法,如使用 for 循环或递归遍历列表中的元素。

思路分析:

  • 定义节点对象:为每个列表项创建一个节点对象,包含节点的值和子节点列表。
  • 构建树的根节点:根据列表的第一个元素创建根节点。
  • 递归处理列表的剩余部分:遍历列表的剩余部分,将每个元素作为子节点添加到当前节点的子节点列表中。
  • 处理节点之间的关系:根据列表中元素的顺序,确定父节点和子节点之间的关系。
  • 最终,你将得到一个树形结构,表示列表中元素的层次关系。

以下是一个使用 JavaScript 实现列表转树形结构的代码示例:

// 定义一个节点类
class Node {
  constructor(value, children = []) {
    this.value = value;
    this.children = children;
  }
}

// 将列表转换为树形结构
function listToTree(data) {
  // 创建根节点
  const root = new Node(data[0]);

  // 递归处理剩余的列表项
  for (let i = 1; i < data.length; i++) {
    const item = new Node(data[i]);
    // 根据索引找到父节点
    const parent = findParentNode(root, i);
    if (parent) {
      parent.children.push(item);
    } else {
      root.children.push(item);
    }
  }

  return root;
}

// 找到指定索引对应的父节点
function findParentNode(node, index) {
  if (index === 0) {
    return null;
  }
  for (let i = 0; i < node.children.length; i++) {
    if (node.children[i].children.length > index) {
      return node.children[i];
    }
  }
  return null;
}

// 示例用法
const data = ["Root", "Node1", "Node2", "Node3", "Node4", "Node5"];
const tree = listToTree(data);
console.log(tree);

在这个示例中,我们首先定义了一个Node类来表示树形结构中的节点。每个节点包含一个值和一个子节点列表。

然后,我们定义了listToTree函数,它接受一个列表数据作为参数,并返回转换后的树形结构的根节点。在函数内部,我们首先创建根节点,并使用递归处理剩余的列表项。对于每个列表项,我们创建一个新的节点,并根据其在原始列表中的索引找到父节点,将其添加为子节点。

最后,我们通过调用listToTree函数并传递示例数据来创建一个树形结构,并将其打印到控制台上。

憧憬未来

作为一名前端开发者,我的职业规划和创作规划可以相互促进。

  1. 职业规划:

    a. 技术提升:不断学习新的前端技术,如JavaScript、HTML、CSS等,并关注行业动向,如Web3.0、AR/VR等。通过参加培训、阅读文档、参与社区讨论等方式,提升自己的技术水平。

    b. 项目实践:参与实际项目,将所学知识应用于实践。在项目中,我将遇到各种技术问题,解决问题的过程就是我学习和成长的过程。通过项目实践,我可以积累丰富的开发经验,提高代码质量和效率。

    c. 职业发展:随着技术水平的提高,我希望职业上可以不断晋升,如成为高级前端开发者、技术经理等。在职业发展中,我需要展示自己的技术能力、领导能力和团队合作精神。

  2. 创作规划:

    a. 技术分享:通过写作、演讲等方式,分享自己的技术经验和实践案例。这有助于我更好地总结和梳理所学知识,同时帮助其他开发者解决问题,共同进步。

    b. 项目总结:在完成项目后,对项目进行总结和分析,找出不足和改进之处。这有助于我提高代码质量和效率,为将来的项目做好准备。

    c. 技术预测:关注前端技术的发展趋势,对未来的技术方向进行预测。这有助于我提前做好准备,提高自己的竞争力。

总之,我的职业规划和创作规划可以相互促进,相辅相成。希望我能继续保持这种积极的状态,不断地学习和成长,在前端开发的领域中越走越远。

  • 10
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值