- 博客(40)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 javascript - for.of和for.in的区别
定义和用法for…infor/in 语句用于循环对象属性。循环中的代码每执行一次,就会对数组的元素或者对象的属性进行一次操作。for…ofJavaScript for of 语句循环遍历可迭代对象的值。它允许您循环遍历可迭代的数据结构,例如数组、字符串、映射、节点列表等:代码对比遍历数组const arr1 = [1, 2, 3, 4, 5]const arr2 = [{ name: 1 }, { name: 2 }, { name: 3 }]for (let i in
2022-01-12 14:30:03
430
原创 javascript - 引用类型的比较
const num1 = new Number(1)const num2 = new Number(2)console.log(num1 == num2) //falseconsole.log(num1 === 1) //falseconsole.log(num1 == 1) //truelet arr1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]let arr2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]let arr3 = [ { i
2022-01-12 10:53:24
371
原创 javascript - map、filter、reduce区别及使用
定义和用法map()map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。map() 方法按照原始数组元素顺序依次处理元素。注意: map() 不会对空数组进行检测。map() 不会改变原始数组。filterfilter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。注意: filter() 不会对空数组进行检测。注意: filter() 不会改变原始数组。reducereduce() 方法接收一个函数作为累加
2022-01-11 20:04:56
389
原创 vue 中ts实现mqtt封装
安装mqttnpm i mqttuntils/mqtt.tsimport mqtt from 'mqtt'// 声明mqtt的options数据包类型export interface MqttconnecOption extends mqtt.IClientOptions {}// 为方便外部组件处理message,声明消息回调方法类型export declare type OnMessageFun = (topic: string, payload: Buffer) => voi
2022-01-11 17:03:49
1602
1
原创 配置eslint代码规范
1、vscode安装eslint、Prettier和vetur2、安装依赖yarn add eslint prettier eslint-config-prettier eslint-plugin-prettier -D要实现typescript环境,继续安装如下依赖yarn add typescript @nuxtjs/eslint-config-typescript @typescript-eslint/eslint-plugin @typescript-eslint/parser -D
2022-01-10 15:18:59
968
原创 leetCode - 无重复字符的最长子串
function lengthOfLongestSubstring(s: string): number { //l 左指针 maxLength 最大长度 let l:number = 0 let maxLength:number = 0 // hashMap存储重复字符,以及出现的位置 const map = new Map() // r 右指针 开始遍历 for (let r:number = 0; r < s.length; r++) {
2022-01-04 16:09:15
537
原创 vue3.0中使用 websocket,封装到公共方法
首先创建一个socket.ts文件封装公共方法/* * @Descripttion: 封装socket方法 * @version: * @Date: 2021-08-06 11:14:39 * @LastEditTime: 2021-10-26 14:06:34 */import i18n from '@/locales'import store from '@/store'import { ElMessage } from 'element-plus'import { Base64 }
2022-01-04 11:13:15
5313
3
原创 JS实现url地址栏参数拼接、更改或者删除,(根据筛选条件,一个方法实现)
其实主要判断的点有两个,一共三种情况:判断url参数是否只有一个,使用一个参数的正则匹配判断多个参数:1、 判断是否是第一个参数2、判断是否是第二个参数这两个点梳理出来就开始实现正则匹配,但是每次匹配的时候要考虑传入的值是否为空,如果为空要按上述两种情况去处理,把值替换为空串,如果不为空,按默认正则模板直接替换代买实现:/** * @description: * @param {string} name:传入的键名,参数名 * @param {any} value:传入的值 *
2021-12-29 09:33:03
2526
原创 leetCode -爬楼梯
//假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?// 假设n = 1 O==[===========> 1种 0 1 0// 假设n = 2 O==[===========> 1+1 2 2种 1 2 1// 假设n = 3 O==[===========> 1+1+1 2+1 1+2 3种 1 3 2// 假设n = 4
2021-12-27 11:31:42
2746
原创 leetCode - 算术平方根
function mySqrt(x: number): number { // if (x === 0) return 0 // if(x === 1) return 1 // for (let i: number = 1; i <= x / 2; i++) { // if (i * i <= x && x < (i + 1) * (i + 1)) { // return i // }
2021-12-24 16:44:08
338
原创 leetCode - 二进制求和
function addBinary(a: string, b: string): string { // 解法会溢出 // const la = parseInt(a, 2) // const lb = parseInt(b, 2) // const total = (la + lb).toString(2) // return total let l1: string = a.length >= b.length ? a : b let l2: string =
2021-12-24 15:35:17
586
原创 leetCode - 给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。
// 给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。function plusOne(digits) { for (let i = digits.length - 1; i >= 0; i--) { if (digits[i] !== 9) { digits[i] += 1 for (let j = i + 1; j < digits.length; j++) { digits[j] = 0 }
2021-12-21 13:25:35
360
原创 leetCode - 最后一个单词的长度
// 给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中最后一个单词的长度。function lengthOfLastWord(s: string): number { return s.trim().split(' ')[s.trim().split(' ').length - 1].length};...
2021-12-20 17:47:00
68
原创 leetCode - 最大子数组和
function maxSubArray(nums: number[]): number { if (nums.length === 1) return nums[0] let max_end: number = nums[0] let max_current: number = nums[0] for (let i: number = 1; i < nums.length; i++) { // 拿到第一个最大字串,就是nums[0]和nums[1]的和来做
2021-12-20 17:12:05
93
原创 leetCode - 搜索插入位置
if (!nums.length) return 0 let i: number = 0 while (i < nums.length) { if (nums[i] === target) return i if (nums[i] > target) return i if (target > nums[nums.length - 1]) return nums.length i+
2021-12-20 13:51:55
170
原创 leetCode - 移除数组中的指定元素
function removeElement(nums:nums[], val:numer):numer { if (nums.length === 0) { return 0 } let loop:numer = 0 while (loop < nums.length) { if (nums[loop] === val) { nums.splice(loop, 1) } else { loop++ } } return
2021-12-20 13:29:14
85
原创 leetCode -实现一个strStr(),返回一个字符串在另一个字符串中出现的位置
function strStr(haystack, needle) { if (needle === '') return 0 // js已有轮子 // return haystack.indexOf(needle) // 相当于自己实现一个indexOf方法 for (let i = 0; i < haystack.length; i++) { if (haystack[i] === needle[0]) { if (haystack.slice(i, i
2021-12-20 13:20:29
274
原创 leetCode - 有效的括号
说实话这个题还是觉得有问题,看了官方思路写出来了,function isValid(s: string): boolean { // 先判断字符串的length 不为偶数返回false if (s.length % 2 !== 0) return false const strMap = new Map([ [']', '['], [')', '('], ['}', '{'], ]) const stk: string[] = [] for (let i of s) { if
2021-12-09 15:27:29
2966
原创 couldn‘t find the plugin “eslint-plugin-jsdoc“. This can happen for a couple different reasons
egg在做单元测试的时候报错,找不到eslint-plugin-jsdoc这个包执行 npm ls eslint-plugin-jsdoc,查看依赖这里eslint-config-egg@7.5.1依赖于它,找不到我们就装一下它npm i eslint-plugin-jsdoc -D重新测试
2021-11-23 17:24:42
853
原创 leetCode -- 最长公共前缀
没有想到什么好的办法 就是直接暴力循环,先找到最短子串,在找子串function longestCommonPrefix(strs: string[]): string { let focu:string = '' let str:string = strs[0] if (!strs.length) return focu // 先找最短子串 for (let i = 1; i < strs.length; i++) { str = strs[i].length <
2021-11-19 16:33:08
72
原创 NPM 发布自己的npm包
1、首先访问npm官网,并登录,没有账号需先注册2、创建好自己的包配置,查看版本3、创建一个空文件夹,执行npm init -y 初始化,并配置好自己的最基础的webpack.config.js4、执行打包5、在终端输入命令npm config get registry一定要确保输出路径地址是https://registry.npmjs.org/如果是淘宝源的话,是无法上传成功的6、然后执行npm adduser,输入自己的账号密码密码是不显示输入的 输完直接按回车就行输出这
2021-11-18 14:44:30
215
原创 node版本过高,导致sass-loader,node-sass安装出现问题
版本问题没有办法,只有靠版本解决: "node-sass": "^6.0.1", "sass-loader": "^10.0.1",将原来的node_modulse删除,将package.json文件替换成这两个版本重新 npm i
2021-11-10 13:02:17
408
原创 leetCode - 罗马数字转整数
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。通常情况
2021-11-08 10:45:03
84
原创 vue+ts获取package.json中version版本
第一步:在shims-vue.d.ts配置文件中写入:declare module '*.json' { const value: any; export default value;}第二步:在需要引入底地方:import configs from '../../package.json'自己根据自己的相对路径去查找
2021-11-04 13:22:57
991
原创 caniuse-lite is outdated. Please run: npx browserslist@latest --update-db
最近手里三个vue项目都出现:这个踢死,网上查了下这个是啥,重新认识caniuse博主详细解释了一些,想了解的可以看看,解决方案:npm i caniuse-lite@latest直接更新最新版 caniuse-lite,如果没有生效,建议node_modules下面的caniuse-lite包,重新执行npm i caniuse-lite@latest npm i autoprefixer@latest npm i caniuse-lite browserslist@latest
2021-11-04 09:48:52
2309
原创 leetCode - 回文数
给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。示例 1:输入:x = 121 输出:true示例 2:输入:x = -121 输出:false 解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入:x = 10 输出:false 解释:从右向左读, 为 01 。因此它不是一个回文数。示
2021-11-03 17:56:53
68
原创 leetCode - 整数翻转
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。示例 1:输入:x = 123 输出:321示例 2:输入:x = -123 输出:-321示例 3:输入:x = 120 输出:21示例 4:输入:x = 0 输出:0提示:-231 <= x <= 231 - 1解法1:functi
2021-11-03 13:08:56
241
原创 leetCode - 两数之和,返回下标
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9 输出:[0,1] 解释:因为 nums[0] + nums[1] ==9 ,返回 [0, 1] 。示例 2:输入:nums = [3,2,4], target
2021-11-01 11:56:34
146
原创 leetCode - 575分糖果
leetCode – 575分糖果给定一个偶数长度的数组,其中不同的数字代表着不同种类的糖果,每一个数字代表一个糖果。你需要把这些糖果平均分给一个弟弟和一个妹妹。返回妹妹可以获得的最大糖果的种类数。示例1:输入: candies = [1,1,2,2,3,3]输出: 3解析: 一共有三种种类的糖果,每一种都有两个。最优分配方案:妹妹获得[1,2,3],弟弟也获得[1,2,3]。这样使妹妹获得糖果的种类数最多。示例2:输入: candies = [1,1,2,3]输出: 2解析:
2021-11-01 10:05:46
118
原创 vue3.0项目+typescript+vuex4+vue-router+i18n多语言+axios+eslint项目模板
项目框架vue3.0+typescript+vuex4+vue-router+i18n多语言+axios+eslint+element+包含一些验证方法库,所有公共插件提取封装,开发—测试等环境变量配置
2021-10-22 11:33:48
198
原创 解决element-plus的menu菜单组件无限极多次使用,切换一级菜单后无法高亮问题
1 页面结构顶部为一级菜单,左侧为无限极二级菜单问题:当切换一级菜单之后,菜单只有在刷新之后才能有高亮属性,检查获取到的route.path是没有问题的,就是渲染不上,所以把问题定位到父组件与 子组件的渲染和传值问题上,解决思路1、在子组件上加一个v-if控制`<LeftBar v-if="show" :menuList="LeftBarMenu" />2、监听父组件所传值的改变 watch( () => state.LeftBarMenu,
2021-05-06 15:41:35
2849
原创 vue3.0+ts实现表单验证及解决vue-i18n表单验证rules自动触发问题
解决vue-i18n表单验证rules自动触发问题技术栈 vue3.0+ts+element-plus问题就像下面图片所展示,我们每次点击右侧语言切换的时候,都会触发表单的rules,我们没有动表单,还是会出现验证信息.技术栈 vue3.0+ts+element-plus问题就像下面图片所展示,我们每次点击右侧语言切换的时候,都会触发表单的rules,我们没有动表单,还是会出现验证信息.1、因为我们要实现如果在验证的中途切换的语言的时候,error message也会跟着触发,所以我们将代码写到com
2021-04-08 17:49:59
4309
原创 element-ui菜单组件嵌套二层路由导致当前菜单高亮的问题
二级路由导致菜单高亮失效首先 如果页面没有添加二级路由或者多级路由菜单得话,可以直接使用官网给的方法 :default-active="$route.path"就没有问题了但是当存在多层路由嵌套得时候,建议将路由写在计算属性里面 :default-active="defaultActive"其中计算属性里面写入需要或企业得路由, computed: { //获取当前...
2019-06-15 23:47:29
4198
1
原创 react create-react-app npm start 报错问题
react create-react-app npm start 的报错问题使用react脚手架的时候报错:Don't try to install it manually: your package manager does it automatically.However, a different version of babel-loader was detected higher u...
2019-03-18 23:53:57
4128
原创 记录JSX语法配置的两套包和配置文件
babel插件安装+ cnpm i babel-core babel-loader babel-plugin-transform-runtime -D+ cnpm i babel-preset-env babel-preset-stage-0 babel-preset-react -D配置配置.babelrc文件配置webpack.config.js文件...
2019-03-04 15:36:52
686
原创 关于表格表头与表格数据体的对齐问题
解决表格表头与表格数据体的对齐问题最近在项目遇到了表格的表头与表格数据体无法对齐的问题,找了很多办法,都没实际的作用,研究了一下,在这里记录一下:(所有样式代码均只贴关键部分)首先表格样式table{ table-layout:fixed //其实这里也可以不加 只是为了防止一些特殊情况}tr{ display:flex}td,th{ width:××% //具体数值根...
2019-02-27 22:39:40
3049
原创 npm常用命令
在node中使用npm的一些常用命令npm其实也是有版本的概念的,其中npm --version (或简写npm -v) ////查看版本npm install --global npm ////升级npm下面总结一些npm常用命令以及意义npm init (npm init -y) //这里是初始化package.json这个文件,其中括号里面的操作是跳过package.jso...
2019-01-17 15:15:05
115
原创 将请求参数拼接到地址栏
实现表格数据导出时,试用url方式跳转时,如何将请求参数拼接到请求地址栏首先列举一个数据对象selectData:{ name: "", age: "", tel: "",}类似这样一个数据对象,采用方法let param = qs.stringify(this.selectData);this.selectData是vue里面获取自定义数据的方法,当然主要讲的是qs.str..
2019-01-11 11:35:06
5991
原创 node.js搭建一个简易的仿apache服务器
node.js搭建一个简易的仿apache服务器node环境当然,开始之前,我们首先还是需要配置好自己的Node环境,node的环境配置网上还是有许多教程的,没有的小伙伴阔以参考这里,有详细的配置与教程。引入http模块并创建服务,因为在apache服务中我们使用的是他自己的www目录,所以在这里为了读取到我们自定义的www目录,还得引入文件模块let http = require('h...
2018-12-26 14:13:59
784
捕食者与被捕食者求大神解题C++.
2015-05-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人