- 博客(307)
- 收藏
- 关注
原创 合并对象 递归注意对象的合并时机
/,然后添加detail(obj[key], keyStr).注意这个函数有可能是返回空的{}如a.d的时候就是返回空对象,因为逻辑是!//而正确方案都是让detail(obj[key], keyStr)去先执行,先进入递归,此时res已经被res = { ...res, ...sonObj };//两个方案的本质区别在于扩展顺序的不同,错误的方案是先展开res,此时还没有进入递归,res是空的{},后面虽然进入了递归也改变了res,但是展开运算在前面,时间线后面的无法去改变前面的所以是空的去展开。
2025-08-01 14:53:59
364
原创 手写数组洗牌算法
实现一个数组洗牌函数,使用Fisher-Yates(费雪-耶茨)洗牌算法,确保数组元素随机排列,每个元素在每个位置上的概率相等。:一个数组:洗牌后的数组(原地洗牌)
2025-07-25 18:43:06
783
原创 数组倒序遍历中splice操作的安全性分析.
倒序遍历结合splice是处理数组动态修改的安全高效方案索引变化仅影响已处理元素完全避免正序遍历中的元素跳过问题单一循环完成遍历与修改,时间复杂度O(n)适用于所有需要在遍历中修改数组的场景。
2025-07-25 16:28:09
174
原创 闭包的两种设计模式
闭包设计模式是 JavaScript 中强大的编程工具,通过合理运用辅助函数模式和工厂模式,可以写出更加优雅、可维护的代码。关键是要根据具体的使用场景选择合适的模式,并注意性能和内存管理的最佳实践。每个闭包创建独立的作用域环境工厂函数返回的每个实例都有独立的状态合理使用闭包可以实现强大的功能增强注意内存管理和性能优化。
2025-07-17 11:33:50
928
原创 链表的 哑结点的本质
关键理解:dummy从未"保存"current的变化dummy始终指向原始哑节点current在链表上移动,与dummy无直接关系dummy通过链表连接"看到"所有节点通过next指针的连接关系形成了的访问路径两个不同的概念变量指向dummy和current指向哪个节点节点连接:节点之间通过next形成的连接关系为什么需要current变量需要一个"移动指针"来遍历和构建链表需要一个"固定指针"来保持对头节点的引用这两个职责不能由同一个变量承担你的理解有一个关键误区:相同点。
2025-07-15 15:39:33
298
原创 堆排序详解
/ 假设当前节点是最大的。console.log(“\n排序完成:”, arr.join(', '));总体复杂度 O(n log n) 构建堆O(n) + 排序O(n log n)console.log(“原始数组:”, arr.join(', '));console.log(“构建堆后:”, arr.join(', '));数组:[10, 8, 9, 4, 7, 5, 3, 2, 1, 6]
2025-06-23 15:28:06
831
原创 回溯算法 递归调用栈详解
调用栈是LIFO结构:最后调用的函数最先返回栈帧包含执行上下文:参数、局部变量、返回地址return语句触发栈帧弹出:程序自动回到调用点继续执行引用类型变量在递归中共享:这是回溯算法能工作的基础明确的终止条件防止栈溢出:递归必须有出口回溯 = 撤销选择:在从递归返回后撤销之前的修改每次递归调用都是在探索一种可能性,而return则是回到上一个决策点,继续探索其他可能性。
2025-06-12 11:11:35
694
原创 异步并发控制代码详细分析
并发槽位管理:通过和limit控制同时执行的任务数动态调度:每个任务完成时立即尝试启动新任务(递归调用顺序保证:使用闭包中的taskIndex确保结果按原数组顺序存储流水线执行:不等待批次完成,而是任务完成即补充,最大化并发效率这种设计实现了受限并发的流水线处理,既控制了资源使用,又保证了高效执行和结果有序性。
2025-05-30 17:24:36
476
原创 【无标题】好用的远程链接插件
现在在做后端开发有的时候需要链接到远程服务器,有很多插件看不到整体的目录结构。推荐 trae的 ssh Client。
2025-04-29 16:21:16
319
原创 记一次大文件 git推不上代码文件大小超过100M
看来这些大文件仍然在 Git 的历史记录中。我们需要使用更强力的方法来清理它们。现在你的仓库应该已经清理干净了,不再包含那些大型日志文件。以后这些日志文件会被 .gitignore 忽略,不会再被提交到仓库中。这个错误是因为你尝试推送到 GitHub 的文件超过了 GitHub 的文件大小限制(100MB)。好的,我来帮你处理推送问题。使用 git filter-branch 命令从 Git 历史记录中完全删除了大文件。看来我们需要先处理未暂存的更改。好的,我们看到有一些更改需要提交。我可以帮你具体实施。
2025-04-15 17:18:26
980
原创 远程服务器下 每次装包的时候都提示我没有装cross-env
之前写的是 --production 命令。这个命令只会安装 package.json 中 dependencies 下的依赖,而不会安装 devDependencies 下的依赖。
2025-04-15 17:02:37
143
原创 JavaScript reduce 方法详解
/ 输出: { apple: 3, banana: 2, orange: 1 }console.log(flatArray);// 输出: [1, 2, 3, 4, 5, 6]虽然 reduce 可以实现 map 、 filter 的功能,但应选择最适合的方法。accumulator (acc):累加器,存储上一次回调的返回值。currentValue (cur):当前正在处理的数组元素。如果不提供初始值,数组第一个元素将作为初始值。总是提供初始值,避免空数组报错。
2025-04-02 15:04:08
253
原创 axios 取消token 模糊搜索
console.log(‘上一个请求已被取消:’, thrown.message);// 创建一个取消令牌源(cancel token source)// 将新令牌赋值给全局变量 source,以便于下次取消。source.cancel(‘取消上一个请求’);// 发起请求前取消上一个请求(如果还没有完成)axios.get(‘你的搜索API’, {// 发起新的请求,并使用新的取消令牌。// 创建新的取消令牌。// 绑定输入框的事件。// 下拉框搜索函数。
2024-05-13 16:06:24
400
1
原创 axios 取消token 模糊搜索
console.log(‘上一个请求已被取消:’, thrown.message);// 创建一个取消令牌源(cancel token source)// 将新令牌赋值给全局变量 source,以便于下次取消。source.cancel(‘取消上一个请求’);// 发起请求前取消上一个请求(如果还没有完成)axios.get(‘你的搜索API’, {// 发起新的请求,并使用新的取消令牌。// 创建新的取消令牌。// 绑定输入框的事件。// 下拉框搜索函数。
2024-05-08 18:37:51
455
1
原创 git回退代码后如何让本地代码和远程代码保持一致
git reset --hard origin/kyf1.3 让本地代码强制和远程代码保持一致。git 回退到远程以后 git push -f 推到远程以后。别人 先git stash 保存现有代码。别人需要强制的让本地代码和远程保持一致。
2024-02-05 10:49:57
836
1
原创 Syntax Error: SassError: This file is already being loaded. 这个错误。原因是将这个scss文件重复引入了, 修改如下:
【代码】Syntax Error: SassError: This file is already being loaded. 这个错误。
2024-01-19 11:17:31
2037
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人