- 博客(107)
- 资源 (2)
- 问答 (2)
- 收藏
- 关注
原创 Vscode中的MarkdownPreviewEnhanced设置字体颜色
Vscode中的MarkdownPreviewEnhanced设置字体颜色
2023-01-06 16:54:39 1934
原创 JS编号自增
简单说一下思路Form.List 的列表增加的同时编号自增,效果图:获取上一个框的值然后获取的是一个字符串,如果是数字字符串就需要自增,如果不是,则不显示值字符串转数字加1的话前面000,就没有了所以加完1再转字符串加000下面是支持的是个位进位 let res = form.getFieldValue('cardList'); let str = res[res.length - 1]?.cardNo;
2022-05-13 16:32:54 1634
原创 递归平常使用
树形结构数组转扁平数组function flatten(tree,arr){ tree.forEach(item=>{ const {children,...props} = item arr.push(props) if(children){ flatten(children,arr) } })
2022-05-13 08:59:53 81
原创 使用react时觉得有必要记录的东西
createFromIconfontCN当我们使用antd内置的字体图表已经不能满足日常开发的时候,antd内置了与阿里矢量图标衔接的方法: Icon.createFromIconfontCN,找到图标生成Symbol代码,可以放到CDN,也可以放到本地。import { createFromIconfontCN } from '@ant-design/icons';const IconFont = createFromIconfontCN({ scriptUrl: '//at.alicd
2022-05-08 17:53:46 521
原创 函数式编程
函数式编程基础理论1.数学中的函数书写如下形式 f(x) = y。 一个函数F,已x作为参数,并返回输出y。这很简单,但是包含几个关键点函数必须总是接受一个参数 函数必须返回一个值 函数应该依据接收到的参数 而不是外部环境运行,对于给定的X 只会输出唯一的y2.函数式编程不是用函数来编程 也不是传统的面向过程编程。主旨在于将复杂的函数合成简单的函数(计算理论,或者递归论,或者拉姆达演算)。运算过程尽量写成一系列嵌套的函数调用。3.通俗写法 function xx(){} 区别开函数和方法。方
2022-01-05 21:12:46 1162 1
转载 实现compose
什么是compose?compose就是执行一系列的任务(函数)let tasks = [step1,step2,step3,step4,step5]每一个step都是一个步骤,按照从右往左的顺序一步步执行到结尾就是composecomponse在函数式编程中是一个很重要的工具函数,compose自身有三个特点:1.第一个函数是多元的(参数是多个),后面的函数都是单元的(接受一个参数)2.执行的顺序是从右向左3.所有函数的执行都是同步的一般的使用场景是这样的:let init = (...
2022-01-04 18:04:06 229
转载 Git Reset 三种模式
有时候,我们用Git的时候有可能commit提交代码后,发现这一次commmit的内容是有错误的,那么有两种处理方法:修改错误内容,再次commit一次2.使用git reset 命令撤销这一次错误的commit,第一种方法比较直接,但会多一次commit记录而我个人更倾向于第二种方法 错误的commit没必要保留下来那么今天来说一下git reset。它用一句话概括git reset -Reset current HEAD to the specified state意思就是可以
2021-12-25 18:02:21 668
原创 2022年记录心得
快速删除node_modules1.全局安装rimraf:npm install rimraf -g2. 到你的项目根目录下(即有node_modules的目录),执行命令:rimraf node_modules安卓不支持 display:none 样式
2021-12-25 13:46:14 173
转载 苹果OSX关闭rootless内核保护
我们知道苹果系统上使用了Rootless,可以理解为一个更高级的系统的内核保护措施,系统默认将会锁定 /system /sbin /usr这三个目录 。但是这个保护也是可以关闭的。方法:在刚重启电脑,屏幕还没亮的时候,就一直按住 Command + R,直到进入恢复区(2到5分钟左右)。然后在实用工具栏找到终端启动运行,输入:csrutil disable;reboot你会看到系统保护被关闭的字样,并且系统自动重启。这样你就可以修改系统级别的文件了。但是系统还有一个保护叫做Gate
2021-12-25 10:59:12 410
转载 从浏览器缓存淘汰策略和Vue的keep-alive学习LRU算法
从浏览器缓存淘汰策略和vue的keep-alive学习LRU算法由浏览器的缓存策略引出LRU算法原理然后走进Vue中keep-alive的应用接着,透过vue中的keep-alive源码来看LRU算法的实现最后 来一道leetCodo题目 我们来实现一个LRU算法一.LRU缓存淘汰策略缓存在计算机网络上随处可见 例如:当我们首次访问一个网页时 打开很慢,但当我们再次打开时,打开就很快这就涉及缓存在浏览器上的应用:浏览器缓存。 当我们打开一个网页 它在发起真正的网络请求前,查询浏览器缓存
2021-11-09 21:40:44 294
原创 面试算法题二
我们知道在javascript中 可以在数组中保存不同类型的值 并且数组可以动态增长,不像其他语言 例如C 创建的时候要决定数组的大小 如果数组满了 ,就要重新申请内存,这是为什么呢?可从四个方面回答这个问题数组基础入门javascript中 数组为什么可以保存不同类型的值javascript中 数组是如何存储的javascript中 数组的动态扩容与减容Javascript中JSArray继承自JSObject,或者说它是一个特殊的对象,内部是以key-value形式存储数据所以j
2021-10-31 16:28:27 128
转载 Object.entries()
Object.entries()方法返回一个给定对象自身可枚举属性的键值对数组,其排列与使用for…in循环遍历该对象时返回的顺序一致(区别在于for-in 循环也枚举原型链中的属性)。通俗点就是Object.entries()可以把一个对象的键值对以数组的形式遍历出来 结果和for…in一致 但不会遍历原型属性示例1—传入对象const obj = {foo:‘bar’,baz:‘abc’}console.log(Object.entries(obj)); //[[‘foo’,‘bar’],[
2021-10-31 15:55:02 96
原创 动态规划 ----算法
打家劫舍你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例 1:输入: [1,2,3,1]输出: 4解释: 偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。偷窃到的最高金额 = 1 + 3 = 4 。示例 2:输入: [2,7,
2021-10-21 15:55:35 172
原创 DFS 算法题目
岛屿最大的面积给定一个包含了一些 0 和 1 的非空二维数组 grid 。一个 岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在水平或者竖直方向上相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。找到给定的二维数组中最大的岛屿面积。(如果没有岛屿,则返回面积为 0 。)示例 1:[[0,0,1,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,1,1,1,0,0,0],[0,1,1,0,1,0,0,0,0,
2021-10-20 16:44:54 175
原创 算法——BFS题目
在每个树行中找最大值需要在二叉树的每一行中找到最大的值输入: 1 / \ 3 2 / \ \ 5 3 9输出: [1, 3, 9]思路这是一道典型的BFS题目 BFS的套路其实就是维护一个queue队列 在读取子节点的时候同时把发现的孙子节点push到队列中但是先不处理 等到这一对列中的子节点处理完成之后 下一轮再继续处理的就是孙子节点 这就实现了层序遍历 也就是一层层的去处理但是这里有一个问题,就是如何知道处理的节点是哪
2021-10-20 15:46:12 277
原创 双指针 算法
题1给你n个非负整数a1,a2,…an,每个数代表坐标中的一个点(i,ai),在坐标内画n条垂直线,垂直线i的两个端点分别为(i,ai) 和 (i,0) 找出其中的两条线, 使得它们与X轴共同构成的容器可以容纳更多的水。说明:你不能倾斜容器 且n的值至少为2思路这题利用双指针去做 i指向最左边 j指向最右边 当发现左边比较高的时候 保持左边不动 右边左移当发现右边比较高的时候 保持右边不动 左边右移 在这个过程中不断更新最大值 最后 i === j的时候 即可求得最大值题解
2021-10-20 11:30:37 52
转载 前端「N皇后」递归回溯
/*@Author: yang@Date: 2021-09-27 19:40:34@LastEditors: yang@LastEditTime: 2021-10-19 19:57:43@FilePath: \demo\广度优先遍历.js*/前端「N皇后」递归回溯经典问题先来看问题,其实问题不难理解:n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击给定一个整数 n,返回所有不同的 n 皇后问题的解决方案。每一种解法包含一个明确的 n 皇
2021-10-19 20:00:08 124
转载 练习算法题
查找表问题两个数组的交集给定两个数组,编写一个函数来计算他们的交集示例 1:输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2,2]示例 2:输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出: [4,9]为两个数组分别建立map 用来存储num -> count的键值对,统计每个数字出现的数量然后对其中一个map进行遍历,查看这个数字在两个数组中分别出现的数量,取出现的最小的那个数量(比如 数组1 中出现了1次
2021-09-26 14:08:24 129
转载 准备数据结构和算法
二叉树二叉树遍历中序遍历// 递归实现var inorderTraversal = function(root,array=[]){ if(root){ inorderTraversal(root.left,array) array.push(root.val) inorderTraversal(root.right,array) } return array}// 非递归实现// 取根节点为目标节点 开始遍历// 1
2021-09-23 14:29:11 66
转载 使用TypeScript的一些注意事项(回顾总结)
易混乱的类型never vs void只需要记住一个特点:返回never的函数 都必须存在无法到达的终点。如死循环、抛出异常。function fn1():never{ while(true){}}function fn2():never{ throw new Error()}any vs unknown- any 任何类型 会忽略语法检查- unknown 不可预知的类型,不会忽略语法检查(这就是最大的区别)const bar:any = 10any.su
2021-09-11 16:50:14 312
空空如也
为什么移动端获取不到cookie,相同的url电脑端就可以,求大佬指教
2020-08-04
Vue中使用vue-orgchart,如何只在最后一个节点添加删除操作
2020-04-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人