自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(77)
  • 收藏
  • 关注

原创 给依赖打补丁的两种方案

1) 将这个文件的代码都拷贝出来,并进行修改后存在项目里,我这边是放在了polyfill文件夹下。以修改antd-table-infinity 插件为例,如图所示,要修改插件里代码。使用第一种方案需要将文件全部拷贝下来,但是只需改一行代码,就很没必要;2) 在node_modules中找到对应的包,并修改相应文件。3) 在package.json确定执行脚本的时机:装包后。2) 新建一个脚本文件,并编写脚本进行文件替换。,以防包升级后,导致打的补丁不起作用。4)修改package.json文件。

2023-11-03 14:23:01 357

原创 css 双栏布局 左侧宽度自适应 右侧自适应

如标题所述,为了实现左侧宽度自适应,右侧使用剩余空间。:与第一种类似,仿table实现。如有更好的方案,欢迎分享~~~:使用table实现。

2023-10-12 16:23:43 981

原创 antd table minHeight

这种方法也不是不可以,但是若需要动态设置最小高度的话,这样写就不是很合适。第一步:计算table scroll height。第二步:设置滚动区域的高。

2023-08-29 18:43:17 1201 2

原创 Echarts highlight line & tooltip

如果折线图数据量过多时,会出现看不清楚的情况,所以希望能高亮当前点击的线,并在tooltip高亮当前点。

2023-03-21 16:41:37 352

原创 创建自己的cli

如何创建自己的脚手架

2022-09-05 09:47:18 292

原创 创建cli 遇到问题汇总

cli 问题汇总

2022-08-26 16:25:13 135

原创 前端格式化工具

husky eslint commitlint...

2022-08-26 16:16:05 514

原创 echarts axisLabel tooltip

项目需求:给xAxisLabel增加icon,并展示tooltip需求难点:xAxisLabel的formatter方法不支持写html,并且原有的chart的是有tooltip内容展示所以参照了他人写的,进行了更改展示效果图:myChart.on('mouseover', function(params){ // 鼠标事件需用mouseover,而不是mousemove,要不鼠标移动时会有卡顿的效果 if (params.componentType === 'xAxis') { l

2021-12-16 18:20:56 914

原创 echarts 值为0时 柱状图不显示bar

项目需求:如果最大最小值差别很大的话,若值很小,也需进行占位,所以加了barMinHeight,这样又导致了另一个问题,值为0时,不需要绘制,因此,提出了下面两种解决方案第一种方法:将值为0的透明度设置为0(推荐)series: [ { barMinHeight: 5, data: [111111120, 200, 150, 80, 70, 110, {value:0, itemStyle: {opacity: 0}}], type: 'bar' }]第二种方法:

2021-09-23 17:47:56 5053 2

原创 echarts 负值到正值的瀑布图

echarts官网给的瀑布图是正值的,然而在实际开发中,会存在负值开始的瀑布图,所以这边动了点小心思,先把最小值给算出来,然后再在y轴显示刻度的时候减去这个最小值,相当于先信用卡给提现了,不管后面是支出还是收入,都不可能出现负值的情况了计算出y轴的最小值yAxisMinyAxis: { type: 'value', axisLabel: { formatter: value => value - yAxisMin }}设置两条x轴,第二条x轴是防止当chart的开始值是负

2021-09-18 16:13:34 1532

原创 LeetCode 92. 反转链表 II

第一种const reverseBetween = (head, left, right) => { const dummyHead = new ListNode(-1); dummyHead.next = head; let prev = dummyHead; let pos = 1; while(pos < left) { prev = prev.next; pos++; } let cur = prev.next; while(po

2021-08-24 20:57:18 73

原创 echarts bar markArea

第一种:无虚拟头结点const reverseList = function(head) { if(!head || !head.next) { return head; } let cur = head; let next = cur.next; cur.next = null; while(next) { const tmp = next.next; next.next = cur; cur

2021-08-12 17:30:25 1863 1

原创 Leetcode 202. 快乐数

公共方法const toSum = n => String(n).split('').reduce((prev, cur) => prev += Math.pow(+cur, 2),0);第一种方法: 用数组检测循环const isHappy = (n) => { const sumArr = []; if(n === 1) { return true; } while(true) { const res = toSum(n); if(res

2021-07-12 17:17:18 64

原创 LeetCode 49. 字母异位词分组

const groupAnagrams = (strs) => { const obj = {}; let count = 1; const res = []; for(let i = 0; i < strs.length; i++) { const cur = strs[i].split('').sort().join(''); if(obj[cur]){ res[obj[cur] - 1] = [...res[obj[cur] - 1], strs

2021-07-08 16:59:25 69

原创 LeetCode 447. 回旋镖的数量

const numberOfBoomerangs = (points) => { let res = 0; for(let i = 0; i < points.length; i++) { const obj = {}; for(let j = 0; j < points.length; j++) { if(j !== i) { if(obj[dis(points[i], points[j])]) { obj[dis(

2021-07-08 16:55:07 60

原创 LeetCode 191. 位1的个数

第一种方法const hammingWeight = (n) => { n = n.toString(2); return n.split('').filter(item => item === '1').length;};第二种方法const hammingWeight = (n) => { n = n.toString(2); return n.split('').reduce((prev, cur) => { if(cur === '1') {

2021-07-02 16:24:39 46

原创 LeetCode 18. 四数之和

const fourSum = (nums, target) => { const res = []; if(nums.length < 4) { return res; } nums.sort((a, b) => a - b) for(let i = 0; i < nums.length - 3; i++) { if(i > 0 && nums[i] === nums[i - 1]) { continue;

2021-07-01 16:55:05 61

原创 LeetCode 15. 三数之和

第一种方法:const threeSum = (nums) => { if(nums.length < 2) { return []; } nums.sort((a, b) => a - b); const res = []; for(let i = 0; i < nums.length - 2; i++) { if(nums[i] > 0) { break; } if(i >= 1 &&amp

2021-06-30 16:57:09 64

原创 LeetCode 345. 反转字符串中的元音字母

第一种方法const reverseVowels = (s) => { let vowels = s.replace(/[^AaEeIiOoUu]/g, ''); // 1)将非元音的字母过滤掉 let count = vowels.length - 1; let str = ''; for(let i = 0; i < s.length; i++) { // 2) 使用str变量来接收翻转后的结果 str += /[AaEeIiOoUu]/.test(s[i]) ?

2021-06-29 15:11:25 64

原创 LeetCode 242. 有效的字母异位词

字母异位词含义:两个字符串,每个字母出现的次数是一致的以下两种方法进行的前提是:字符串s和t的长度需一致第一种方法:const isAnagram = (s, t) => { const sLen = s.length; const tLen = t.length; if(sLen === tLen) { s = s.split('').sort(); t = t.split('').sort(); // 1)字符串转成数组并进行排序; for(let

2021-06-28 17:13:24 53

原创 LeetCode 125. 验证回文串

第一种方法const isPalindrome = (s) => { s = s.toLowerCase().match(/[a-z0-9]+/g, ''); if(!s) return true; s = s.join(''); let left = 0; let right = s.length - 1; while(left < right) { if(s[left] !== s[right]){ return false;

2021-06-28 16:08:18 38

原创 LeetCode 11 盛最多水的容器

双指针const maxArea = function(height) { let start = 0; let end = height.length - 1; let res = 0; while(start < end) { const area = Math.min(height[start], height[end]) * (end - start); res = Math.max(area, res); he

2021-06-25 17:02:46 48

原创 Echarts热力图 值为空时,获取当前鼠标所在的x、y轴位置

当值为空时,tooltip展示的效果图x轴、y轴变量定义let yAxisVal = ''; // 定义y轴变量let xAxisVal = ''; // 定义x轴变量xAxis设置:xAxis: { ... axisPointer: { show: true, type: 'none', trigger: 'item', label: { formatter(e){ xAxisVal = e.value; // 重点:获取x

2021-06-23 18:53:43 1050 6

原创 leetcode 88 合并两个有序数组

双指针const merge = (nums1, m, nums2, n) => { let p1 = 0; let p2 = 0; let res = []; while (p1 < m || p2 < n) { if(p1 === m) { res.push(nums2[p2++]); } else if(p2 === n) { res.push(nums1[p1++]);

2021-06-21 18:07:16 45

原创 leetcode 75颜色分类

计数统计const countSort = (arr) => { const obj = { 0:0, 1:0, 2:0 } arr.forEach(item => item < 3 && obj[item]++); return Object.keys(obj).reduce((prev, cur) => prev.concat(new Array(obj[cur]).fill(+cu

2021-06-17 14:18:25 68

原创 echarts 实现双y轴0刻度对齐

一开始是参照了这个链接实现echarts双y轴0刻度对齐进行的改造,但是发现放到项目里,会出现其中一个y轴刻度不显示的情况。效果图:y轴没有展示然后又参照了这个链接Echarts的双y轴0刻度对齐问题,这个方法也有个问题,是以0为分界线,实现0上和0下等分的情况,若值都是大于0的话,是无需0下部分的。效果图:无需0下部分上面两种都不能有效解决问题,所以只能自己写了第一步:分别找出双y轴的最大最小值const max1 = Math.max(1, ...data1) || 1;const m

2021-01-21 18:40:03 3840 2

原创 echarts 折线图的点始终位于柱状图的中心

一开始是参照了这个链接进行的改动,其是通过计算进行的偏移,这个要考虑到屏幕的宽度,及柱状图的宽度,无法做到自适应,并且当点击图例的时候,也会有偏差,最后放弃了这种方法,下面的方法更加适用。核心:设置两个一模一样的x轴,一个柱状图位于xAxis[0],另一个位于xAxis[1]option = { xAxis: [ { type: 'category', data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'

2020-09-09 20:05:10 3357

原创 d3 canvas 绘制力导向图

d3 canvas 绘制力导向图下面是分别使用svg和canvas绘制的效果图svg绘制的效果图canvas绘制的效果图数据量小的时候,使用svg绘制是没什么问题的,但是一旦点和线的数据量一大,就会造成页面卡顿的情况,因此只能使用canvas又重新绘制了一遍,下面是参考了他人写的,进行改进,链接放在最下面了html<div class="micro-topo-chart"> <canvas id="topo-canvas" class="topo-canvas" w

2020-08-26 16:55:22 1508 3

原创 node版本管理工具n

全局安装sudo npm i -g n修改文件访问权限sudo chown -R $(whoami) /usr/local/nsudo chown -R $(whoami) /usr/local/bin /usr/local/lib /usr/local/include /usr/local/share查看已安装的node版本列表n list查看远端node所有版本n ls-remote --all安装新版本n x.x.x // 如:n 9.11.2切换版本n 回车上下

2020-05-26 18:28:49 625

原创 仿koa2 compose,实现自己的中间件

仿koa2 compose,实现自己的中间件临时接到任务,要写中间件,然后就仿照了两篇博客进行了改动,这两篇博客会在最后给出。app.jsclass App { constructor() { this.middlewares = []; } use(fn) { if (typeof fn !== 'function') throw new TypeError('Middleware must be composed of functions!'); this.mi

2020-05-26 11:09:29 143

原创 react antd 项目遇到问题总结

react antd 项目遇到问题总结react antd 项目遇到问题总结tooltip换行input框里的tooltip显示与隐藏国际化 英文转中文表格里的分页属性设置form表单react antd 项目遇到问题总结tooltip换行<Tooltip overlayStyle={{ maxWidth: 300 }} overlay="访问子环境需要为应用配置代理信息"></Tooltip>input框里的tooltip显示与隐藏// 初始化const

2020-05-12 17:02:10 793

原创 react遇到的问题总结

react遇到的问题总结react hookreact hook(1)问题描述: React Hook “useState” is called in function “stateHook” which is neither a React function component or a custom React Hook function react-hooks/rules-of-hoo...

2020-03-12 12:34:46 196

原创 webpack入门

webpack入门之前有看过一些webpack的知识,但是老是因为种种,造成断断续续,webpack的配置初始化项目初始化npmnpm initwebpack在node环境下运行,需要下载webpack和webpack-clinpm i -D webpack webpack-cli-D: --save-dev-S: --save新建文件夹src,在该目录下生成main.js文...

2020-01-14 18:02:06 89

原创 页面重绘和回流

基础知识        要了解页面的重绘与回流,就得先对页面的呈现机制有所了解,下面流程图是浏览器对页面呈现的处理流程(不同的浏览器,可能会有些许不同)。浏览器把获取到的html代码解析成一颗DOM树,每个标签(tag)都是DOM树的一个节点,根节点就是我们常用的document对象。DOM树主要包含:HTML...

2019-11-06 20:53:02 391

原创 js padStart和padEnd

以前在写时分秒不足两位数时(<10),补0最常用的方法有:第一种:短路let num = 5num < 10 && (num = '0'+num)console.log(num) //05注:记得&&后面要加小括号,否则会报错第二种:if判断let num = 5if(num < 10){ num = '0'+num}con...

2019-10-09 20:38:26 212 1

原创 总结微信小程序遇到的坑

问题一:open-data的用户头像显示为圆形display: block; // 重点overflow:hidden; // 重点width: 120rpx;height: 120rpx;border-radius: 50%;问题二:设置input的placeholder样式在input框多加placeholder-class<input placeholder-cl...

2019-09-28 10:45:39 187

原创 git 问题总结

问题1:为不同的git仓库设置不同的用户名和邮箱现在在公司上班,用的是自己的电脑,平时提交代码也是使用公司的邮箱,但是若使用公司的邮箱往自己的GitHub提交代码的话,会因为邮箱不一致,从而导致查看不到提交记录的情况,因此可以为特定的仓库设置用户名和邮箱查看当前仓库的用户名和邮箱git config user.name git config user.email为特定的仓库设置用户名和...

2019-08-28 20:12:10 83

原创 node server遇到的问题总结

问题1:JSON.stringify() 中文乱码解决方法:encodeURI(JSON.stringify(blogData),"utf-8")参考链接:[1] JSON.stringify()中文乱码

2019-08-28 19:00:04 117

原创 vue + ts遇到的问题总结

问题1:Element implicitly has an ‘any’ type because type ‘TraceTool’ has no index signature.Vetur(7017)解决方法:在组件头部加这段代码declare module 'vue/types/vue' { interface Vue { [key: string]: any, ...

2019-08-28 14:02:29 1834

原创 js 京东的校招笔试题

题目描述我做的:function foo(arg){ let arr = arg; let temp = []; arr.map(item => { temp.push(item.split(' ')[0]) }) let obj = {} for(let i=0;i<temp.length;i++){ obj[tem...

2019-08-26 15:33:59 136

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除