js
胖星星
前端菜鸟
展开
-
Typescript 过滤类型的可选字段
将类型中的所有可选字段过滤掉形成新的类型。原创 2022-11-17 09:36:43 · 571 阅读 · 1 评论 -
Typescript 两种类型相等判断
判断类型是否是同一种类型。转载 2022-11-17 09:27:35 · 1160 阅读 · 0 评论 -
Typescript 两种类型的交集
求出两种类型的交集,只有属性名和属性类型完全一致时,被称为交集。原创 2022-11-17 09:19:26 · 557 阅读 · 0 评论 -
js打印 dom节点或者 保存dom节点为pdf
代码调用原生ctrl p 功能打印一个dom节点。传递的dom节点最好是带完整css属性的,而不是动态生成的带class的这种节点,顶层window写的class在iframe里面的window不起作用。const printDom = dom => { if (!dom) return new Error('请打印一个dom元素') const iframe = document.createElement('if原创 2022-03-16 12:32:34 · 1850 阅读 · 0 评论 -
antd onload 上传组件使用自定义上传时 处理错误消息
当使用自定义上传时,设置单项的错误信息有两种方式1.使用受控列表fileList,将错误信息设置到 fileList 每一项中的 response 属性2.未使用受控列表,使用onError方法传递错误信息// 官方文档只说了 message 属性,但是并不生效,我也不知道为什么onError({statusText:'一些错误信息'})补充说明:// 这是antd处理这块逻辑的源码,按照道理来说 error.message 属性应该也是可以的,// 但是使用onError({message原创 2021-08-24 11:46:50 · 733 阅读 · 0 评论 -
echarts 双环(以及多环)图的实现
前言UI给出的设计图设计了几个双环的图表显示和一个三环图,其实很简单,真正难的部分在于双环图之间的数据联动部分<多层环图的数据联动是真的头疼>实现1.基础环图2.双环图数据联动 myChart.on('legendselectchanged', function(obj) { var selected = obj.selected; var legend = obj.name; if (selected != undefined)原创 2021-01-11 20:45:53 · 5746 阅读 · 0 评论 -
Assign array to a variable before exporting as module default
报错原因因为你的写法是错误的,对,没错,这里是错误的!!!解决方式哪里报错,就给他添一句 //eslint-disable-next-linewhy?# const.jsexport default { test1: 1, test2: 2}# use.jsimport { test1,test1} from './const.js';console.log('test1:',test1); // undefinedconsole.log('test2:',test2); /原创 2020-12-02 00:05:17 · 13199 阅读 · 3 评论 -
js 背包问题之01背包(附C++代码)
题目描述 /* 01背包问题 题目描述 一个旅行者有一个最大能装M公斤的背包,现在有N件物品,他们的重量分别是Wi, 价值分别是Vi,求旅行者能获得的最大总价值 输入 第一行:两个整数,M(背包容量,M<=200)和N(物品数量,N<=30); 第2到 N+1 行: 每行两个整数W[i],V[i],表示每个物品的重量和原创 2020-09-29 15:16:29 · 507 阅读 · 0 评论 -
js 不完全树结构指定id节点值的修改
题目给定一个不完全树结构 <不含有根节点的树结构> ,修改指定id的节点值(蚂蚁二面的一个编程题)。和我的另外一篇博客是姊妹篇,这个题目需要借助那篇文章实现的函数完成。其实就是将不完全树结构下面的每一个独立的元素集合作为一个完全树结构来检索就好了。代码 // 需求:给定一个不完全树结构 <不含根节点> ,修改指定id的节点值(蚂蚁二面的一个编程题)// 数据源const treeData = [{ id: '1-1', title: '层级1-1',原创 2020-09-27 21:45:09 · 576 阅读 · 0 评论 -
js (break,continue,return) 跳出循环的方法区别
continue跳出当次循环for (let i = 1; i < 8; i++) { if(i==4) continue console.log(i); }break结束本次循环体for (let i = 1; i < 8; i++) { if(i==4) break console.log(i); }return这个比较特殊,一般来说,retu原创 2020-09-27 21:24:46 · 203 阅读 · 0 评论 -
js 完全树结构指定id节点值的修改
题目给定一个完全树结构 <含有根节点的树> ,修改指定id的节点值(蚂蚁二面的一个编程题)。之前我完成过一篇博客,是写了指定id的路径追踪,但是是需要特定的情况的。这次完成的这个题目没有那么大的限制,只有是完全树,就能找到代码 // 需求:给定一个完全树结构 <含根节点> ,修改指定id的节点值(蚂蚁二面的一个编程题) // 数据源 const treeData = [{ id: 'root', title: '根节点', children:原创 2020-09-27 21:09:59 · 2906 阅读 · 0 评论 -
[js 约瑟夫环] 逢3退数求余 附带C伪代码
题目有N个人围成一圈,顺序排号,从第一个人开始报数(从1到3报数),凡是报到3的人退出圈子,问最后留下来的是第几号的那位分析遇到的一个好玩的题目,记录一下,C写的代码我还没有编译,大致思路是没错的。js我用的递归的方式,当然时间复杂度就比C的时间复杂度高多了。代码 const getPostion = array => { if (array.length === 1) return array[0] // 一个人 if (array.le原创 2020-09-27 15:58:37 · 542 阅读 · 0 评论 -
根据当前时间查找上周六以及本周五(原生js)
分析其实问题的核心在于相差的时间天数的计算再转化为毫秒数运算即可,掌握好这个步骤就能算很多东西了,比如本周二啊,本周三啊,本周3上午10点啊代码const getLastWeek6 = date => { const data = new Date(date) const LastWeek6 = data.getTime() - (1 + data.getDay()) * 24 * 60 * 60 * 1000 return new Date(LastWeek6)}原创 2020-08-28 19:27:28 · 930 阅读 · 0 评论 -
js无法单独使用 import 和 export 的解决办法
环境想随便写一点儿小东西,但是又不想构建一个webpack项目(主要是麻烦)。需要使用的es6的import以及export语法,主要是为了写作过程中将一些函数,或者固定功能的模块抽取出来单独处理,方便自己理清楚逻辑等等准备1.查看自己的浏览器兼容性(总之越新越好,查询地址https://www.caniuse.com/#search=import)![import兼容性](https://img-blog.csdnimg.cn/2020082615410242.png?x-oss-process=原创 2020-08-26 15:49:17 · 6600 阅读 · 0 评论 -
js树结构中寻找指定元素(根据id之类的唯一标识)的路径
起因最近辞职准备考研,没有再做js的东西了,饱受C语言的折磨。但是,室友被一个地方卡住了,需要设计一个函数,返回在一个树结构中一个指定节点的路径。就是从根节点往下走,children中的第几项,传回一个索引数组,它可以按照这个索引数组,直接按位去找到这个节点。(其实也变相的保存了路径,但是感觉比起C中的树实现起来要麻烦一些。毕竟C有个东西叫指针),记录一下代码const data = { // 模拟的antd的树结构数据,以ID作为唯一指定值 key: '1',原创 2020-06-17 23:58:18 · 5613 阅读 · 2 评论 -
react-native Radio 单选组件(可扩展)
原理找了两个还行的图片ICON ,底色相反的。通过色差来达到是否选中的目的想要扩展的话,去图标库找类似的图片在render中再添加对应的映射就好了代码import React, { Component } from 'react';import { TouchableOpacity } from 'react-native';import AntIcon from 'react-native-vector-icons/AntDesign';/** * @param selected 选中原创 2020-06-01 15:15:12 · 688 阅读 · 0 评论 -
react-native EPERM: operation not permitted报错解决
报错差不多是这个样子的…解决方法1.进入RN项目根目录2.cd ./android3.gradlew clean // 清除android项目缓存4.再次回到项目根目录 yarn start原创 2020-06-01 14:59:46 · 763 阅读 · 0 评论 -
百度地图中多个多边形绘制时,存在间隙问题
起因一个朋友遇到的问题,在地图上绘制几个多边形对地图进行区域切块,但是人的精度再高,还是无法点击到两个完全相同的点,所以这里需要一个精度模糊匹配的做法。思路创建一个已有的点集合,每次点击时,将采集到的数据点与集合中的每个数据点进行匹配,比较两者之间的绝对值半径R,一旦这个半径低于设定的半径则可视为两者为同一个点,绘制时采用这个存储的点。若半径大于设定的半径也需要将这个新的点放进这个集合中。当然,数据量不大时,就随意存放即可(点不多的情况,若数据点很多的情况,这里就需要对这个点集合的数据结构进行设计了原创 2020-05-08 18:51:57 · 785 阅读 · 12 评论 -
两个Moment时间大小的比较
小记一下,以免忘记1.时间相等比较const moment1 = moment('04/28/20','MM/D/YYYY');const moment2 = moment('04/28/20','MM/D/YYYY');moment1.isSame(moment2,'day') // truemoment1.isSame(moment2,'date') // true2.时间大小比...原创 2020-04-28 21:04:27 · 46562 阅读 · 4 评论 -
web高阶(进来的都是兄弟,别开枪,自己人)
B站(BV1QE411N7dd)原创 2020-04-23 10:19:21 · 128 阅读 · 0 评论 -
js私有对象,不允许改动的方法。
起因出了一个很费解的bug。上一秒好好的,运行着就出问题了。查了很久,有同事引用了我的工具集中的一个方法,他在使用的过程中,意外的覆盖了我的方法上的一个属性。网上查了一下,由于语言特性,js中存放对象的变量实际上只是一个引用(我一直理解的是C语言中的指针,,,),所以你改动这个值会改变他存放在堆里面的引用所指向的源.解决方法1.和同事沟通,修改了他改动我方法部分的代码2.约定好,每次使用之...原创 2020-04-22 17:42:28 · 281 阅读 · 0 评论 -
前端跨域之自食其力不靠后端...(调试阶段使用)
起因因为某些原因,本地开发的时候老是跨域,而且需要用到线上服务器的一些接口(只有正式服务器才配置完成了,悲剧的是,这个接口不能随意开放),所以研究了一下现行的跨域方式,感觉多多少少都需要后端的配合,要不然就是什么iframe 的 message属性之类的,支持起来感觉有难度,而且开发完成之后,要处理的东西也麻烦。。。。所以研究了一下create-react-app构建的项目自带的跨域方式方式...原创 2020-04-22 16:59:14 · 151 阅读 · 0 评论 -
对antd的Input/TextArea进行一层封装,限制用户输入长度,并实时显示用户输入的长度
原因标题antd好像没实现这个功能,suffix属性在TextArea中不起作用,想了一下,反正是个小功能,就自己随便做了一下,其实很简单 ,就是写个标签然后定位到TextArea屁股后面就行了。代码const suffixStyle= { position:'relative'; left:'-50px'; user-select:'none';}<div&g...原创 2020-04-17 11:01:36 · 4880 阅读 · 4 评论 -
前端页面截图,指定区域截图
前言由于业务需要,需要将页面的指定区域保存为一张图片(其实就是一个很华丽呼哨的表格,前端我画出来了,后端没搞出来,后面就改需求为前端导出为图片,手动狗头一波…)准备使用 html2canvas 这个插件,还是很不错的东西,安利一波npm install html2canvasyarn add html2canvas代码抽了两个函数,看着用吧,应该是没啥问题的。(ps:让你传选择器就传...原创 2020-04-09 17:55:35 · 6147 阅读 · 1 评论 -
antd RangePicker 通过开始时间的选择来禁用结束时间的区间
前言以前都是写原生组件习惯了,由于新的项目需要敏捷开发,用到了UI组件。不错,挺牛逼的一个东西。在使用RangePicker时间区间选择组件的过程中,由于业务的需要,需要对时间区间进行禁用,而且是动态的,需要根据选择的开始时间来划定结束时间的禁用范围,我以为是很简单的东西,然而,东西,反正几经周折,算是搞好了。写个文章记录一下…撤销:Ctrl/Command + Z重做:Ctrl/Comma...原创 2020-04-09 17:43:06 · 4994 阅读 · 1 评论 -
react报错 Objects are not valid as a React child
react报错 Objects are not valid as a React child ,If you meant to render a collection of children, use an array instead产生原因解决方法举例产生原因原生组件JSX语法返回的react虚拟dom中 $$typeof:Symbol(react.memo) 。react顺利挂载需要$$...原创 2019-12-12 20:15:19 · 2180 阅读 · 0 评论 -
Promise简单学习并使用
Promise简单学习并使用一直知道有这个东西,但是并没有使用过,今天简单做个记录。参考文档来源在这里,(如果有侵权,联系我删除哦!)我并没有完全照抄,也在尝试着做自己的归纳总结,不过暂时还没有机会在项目中去使用Promise。[参考文档]https://www.cnblogs.com/whybxy/p/7645578.html基本用法Promise的构造函数接收一个函数作为参数,并且该函...转载 2019-01-29 14:54:08 · 127 阅读 · 0 评论