CodingWithAlice

我的一方小天地,如果对你有帮助,那真的太好了

输入框不失焦导致数据不更新问题

输入框不失焦导致数据不更新问题 总结: 核心是【React 合成事件 VS 原生事件差异】的实践场景 Antd 为了防抖等性能问题,给 Input 组件的 change 事件触发时机是 onBlur,更新后,会把值同步给 form -> 这个同步过程,它既不是宏任务,也不是微任务,是通过 React 的 合成事件的状态更新机制 完成的 是异步的,并且遵...

MongoDB-和mysql使用对比、引入Nestjs流程

MongoDB-和mysql使用对比、引入Nestjs流程 总结: 知识点的补充: mongodb 中没有表的概念,对应 mysql 的表 - 是“集合” 没有下划线和驼峰的转换,所以建议集合定义时直接使用驼峰 mysql 中的 findOrCreate = mongodb 中的 findO...

NestJS provider 和 exports 的区别

NestJS provider 和 exports 的区别 背景:在 AModule 中引入 BModule 后,无法直接使用 BService 解决方案:在 BModule 中通过 exports 导出 // b.module.ts @Module({ providers: [BService], // 错误以为这个是导出 exports: [BService], // ...

应用批量启动脚本 - 有哪些脚本?windows的hack解法

应用批量启动脚本 - 有哪些脚本?windows的hack解法 总结: 启动脚本根据环境使用不同的语言,包括 shell.sh、script.ps1、batch.bat 虽然 windows 无法执行 sh shell.sh,但是 hack 一点,只要安装了 git 就可以使用 git bash 带的 sh 指令了 背景:多个应用以 svn 管理,启动时单独启动 目标:节...

自定义运算符优先级计算

自定义运算符优先级计算 #>$ 问题:给定一个由数字、# 和 $ 组成的字符串,其中 # 的优先级高于 $ 运算规则: a#b:结果为 a * 4 + b * 3 + 2 a$b:结果为 a * 2 + b + 3 最终输出整个表达式的计算结果 1、split + reduce 算法 function numbe...

约瑟夫问题变种 - 标准解法+批量删除解法

约瑟夫问题变种 - 标准解法+批量删除解法 问题:100个人为成圈,从 1 - 100 编码,接收输入 M,从第一个人开始报数,报到 M 的人自动退出这个圈,下个人接着从1报数,直到剩余人数少于M,输出剩余人的编码 自己写的解法 - 比标准解法性能高 核心逻辑:每次都直接删除 M 的倍数 + 记录最后删除的 M 的下一项,移动到数组最前面,形成环状报数 function ci...

最大化最小间隔

最大化最小间隔 问题:给定三个输入: 可种植的树的数量(n):需要种植的树木总数 坐标点数组(positions):每个元素表示一个适合种树的位置坐标(一维或二维) 必须种植的树木数量(k):k ≤ n,且 k ≤ positions.length 从 positions 中选择 k 个点种植树木,使得所有相邻树木之间的 最小间距 尽可能大。 最终返回这个 最大的最小间...

方法的泛化/方法的借用

方法的泛化/方法的借用 将方法从对象中“解绑”出来,使其可以作为一个普通函数使用 实现 Function.prototype.uncurry = function () { const self = this; return (...arg) => { // 方式1 const obj = [].shift.call(arg...

二叉树:前中后序、层序遍历-递归/非递归版本、层序遍历、路径和

二叉树:前中后序、层序遍历-递归/非递归版本、层序遍历、路径和 class TreeNode { // 创建节点 constructor(value, left, right) { this.val = value || 0; this.left = left || null; this.right = right || null; ...

js执行优先级 + 测试题

js执行优先级 + 测试题 参考链接:mdn 优先级操作符 执行优先级由高到低: 19 优先级 分组:(…) 18 优先级 成员访问 a.b 需计算的成员访问 a[b] new 带参数列表 new foo() 函数调用 fun(a) 可选链 a?.b 17 优先级 n...