03 2020 档案

摘要:最近做一个项目需要五级的ztree树插件,网上找了一下发现没有一个合适的,于是就查看zTree 官网,自己封装了一个。记录一下过程。 首先项目中要引入 jquery.ztree.all.min.js这个文件。接下来就是自己根据需求封装。 步骤: 1.配置基本参数。这个根绝自己的需求,查看官网的配置参 阅读全文
posted @ 2020-03-30 11:48 leahtao 阅读(313) 评论(0) 推荐(0) 编辑
摘要:plugin机制是webpack中另一个核心概念,它基于事件流框架tapable,通过plugin(插件)webpack可以实现loader所不能完成的复杂功能,使用plugin丰富的自定义API以及生命周期事件,可以控制webpack编译流程的每个环节,实现对webpack的自定义功能扩展。 首先 阅读全文
posted @ 2020-03-27 20:47 leahtao 阅读(586) 评论(0) 推荐(0) 编辑
摘要:上篇文章我们实现了一个简易版的webpack,可以打包我们的js代码,但是还不能处理我们的 css、less、scss、图片等,这些都是需要loader和plugin来处理,所以,为了打包器更强大,需要增加loader和plugin的支持,接着我们就手写实现一个简单的loader 定义一个index 阅读全文
posted @ 2020-03-27 19:57 leahtao 阅读(577) 评论(0) 推荐(0) 编辑
摘要:(function(modules) { // 缓存已经加载过的 module 的 exports var installedModules = {}; // _webpack_require 与 commonjs 的 require类似,它是 webpack加载函数,用来加载webpack定义的模 阅读全文
posted @ 2020-03-27 13:24 leahtao 阅读(535) 评论(0) 推荐(0) 编辑
摘要:题目描述 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写) 解题思路: 这道题我们要统计每个字符在字符串中出现的次数,那就需要一个容器来存放每个字符的出现次数,在这个容器中可以根据字符来查找他出现的次 阅读全文
posted @ 2020-03-25 11:30 leahtao 阅读(666) 评论(0) 推荐(0) 编辑
摘要:题目描述: 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 解题思路: 首先将字符串进行排序,将它们两两拼接起来,比较a+b和b+a哪个大,如果a+b>b+a,那就应该将 阅读全文
posted @ 2020-03-25 10:46 leahtao 阅读(351) 评论(0) 推荐(0) 编辑
摘要:题目描述 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1 到 阅读全文
posted @ 2020-03-25 09:40 leahtao 阅读(194) 评论(0) 推荐(0) 编辑
摘要:module:就是js的模块化webpack支持commonJS、ES6等模块化规范,简单来说就是你通过import语句引入的代码。 chunk: chunk是webpack根据功能拆分出来的,包含三种情况: 1、你的项目入口(entry) 2、通过import()动态引入的代码 3、通过split 阅读全文
posted @ 2020-03-24 23:39 leahtao 阅读(203) 评论(0) 推荐(0) 编辑
摘要:一、多页应用的配置 const path = require("path"); const HtmlWpackPlugin = require('html-webpack-plugin') const htmlPluginHome = new HtmlWpackPlugin({ template: 阅读全文
posted @ 2020-03-24 14:38 leahtao 阅读(114) 评论(0) 推荐(0) 编辑
摘要:相关概念 稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面。 不稳定:如果a原本在b的前面,而a=b,排序之后 a 可能会出现在 b 的后面。 时间复杂度:对排序数据的总的操作次数。反映当n变化时,操作次数呈现什么规律。 空间复杂度:是指算法在计算机内执行时所需存储空间的度量,它也是数据 阅读全文
posted @ 2020-03-24 12:24 leahtao 阅读(236) 评论(0) 推荐(0) 编辑
摘要:webpack.config.js //解析路径 const path = require('path') // html挂载到内存的插件 const HtmlWebpackPlugin = require("html-webpack-plugin") ////抽离css 将css以link的形式引 阅读全文
posted @ 2020-03-23 21:38 leahtao 阅读(290) 评论(0) 推荐(0) 编辑
摘要:题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 思路: 如果有符合条件的数字,则它出现的次数比其他所有数字出现的次数和还要多。 阅读全文
posted @ 2020-03-23 11:17 leahtao 阅读(133) 评论(0) 推荐(0) 编辑
摘要:题目描述 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) 思路: /*function RandomListNode(x){ thi 阅读全文
posted @ 2020-03-23 08:54 leahtao 阅读(133) 评论(0) 推荐(0) 编辑
摘要:作为webpack的初学者,你肯定也踩到了这个坑。 项目名称是 webpack,所以在初始化的时候会生成一个package.json文件,这个文件里有个name属性,他就是你的项目名称,当安装通过npm install webpack安装webpack 的时候就会报错,表示重名了。 把项目packa 阅读全文
posted @ 2020-03-22 20:44 leahtao 阅读(1298) 评论(0) 推荐(0) 编辑
摘要:题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长 阅读全文
posted @ 2020-03-22 11:21 leahtao 阅读(142) 评论(0) 推荐(0) 编辑
摘要:题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。 注意:保证测试中不会当栈为空的时候,对栈调用pop()或者min()或者top()方法。 思路: 使用两个栈,一个栈用作正常接收数据,另外一个栈作为辅助栈记录每次添加数据时候的最小值, 阅读全文
posted @ 2020-03-22 10:17 leahtao 阅读(133) 评论(0) 推荐(0) 编辑
摘要:先来回顾一下Vue2.x的响应式规则: 对象:会递归得去循环vue得每一个属性,(这也是浪费性能的地方)会给每个属性增加getter和setter,当属性发生变化的时候会更新视图。 数组:重写了数组的方法,当调用数组方法时会触发更新,也会对数组中的每一项进行监控。 缺点:对象只监控自带的属性,新增的 阅读全文
posted @ 2020-03-21 16:45 leahtao 阅读(11510) 评论(0) 推荐(0) 编辑
摘要:题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10. 解法一:用旋转魔方 阅读全文
posted @ 2020-03-21 11:13 leahtao 阅读(165) 评论(0) 推荐(0) 编辑
摘要:题目描述: 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5.思路: 快慢指针,快指针先走n步,然后快慢一起走,直到快指针走到最后,要注意的是可能是要删 阅读全文
posted @ 2020-03-20 15:12 leahtao 阅读(153) 评论(0) 推荐(0) 编辑
摘要:想自己设置图表内容距离上下左右的距离可以使用grid属性 grid: {//组件离容器的距离 left: '3%', right: '4%', //top:'15%', bottom: '3%', containLabel: true //否包含坐标轴的刻度标签 }, 阅读全文
posted @ 2020-03-20 13:55 leahtao 阅读(603) 评论(0) 推荐(0) 编辑
摘要:题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 思路: 从题目得出的信息: 相对位置不变 >保持稳定性;奇数位于前面,偶数位于后面 >需要判断,移动元素位置; 这些都和 阅读全文
posted @ 2020-03-20 11:34 leahtao 阅读(112) 评论(0) 推荐(0) 编辑
摘要:计算属性 特点: 默认不执行,等用户取值的时候再去执行,会缓存取值结果, 如果依赖的值发生了变化 会更新dirty的属性,再次取值时,可以重新求值 import {pushTarget,popTarget} from './dep' import { utils } from '../utils' 阅读全文
posted @ 2020-03-19 16:24 leahtao 阅读(318) 评论(0) 推荐(0) 编辑
摘要:题目描述 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 比如n=3时,2*3的矩形块有3种覆盖方法: 思路: (1)当 n < 1时,显然不需要用2*1块覆盖,按照题目提示应该返回 0。 (2)当 n = 1时,只存 阅读全文
posted @ 2020-03-19 11:33 leahtao 阅读(83) 评论(0) 推荐(0) 编辑
摘要:题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 思路:因为n级台阶,第一步有n种跳法:跳1级、跳2级、到跳n级 跳1级,剩下n-1级,则剩下跳法是f(n-1) 跳2级,剩下n-2级,则剩下跳法是f(n-2) 所以f(n)=f( 阅读全文
posted @ 2020-03-19 11:03 leahtao 阅读(123) 评论(0) 推荐(0) 编辑
摘要:题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。 思路: 青蛙跳1级台阶有1种跳法,2级台阶有2种跳法 3级台阶时可以从1级台阶跳上来也可以从2级台阶跳上来,即等于1级台阶的跳法加2级台阶的跳法 因此n级台阶共有n-2级 阅读全文
posted @ 2020-03-19 10:44 leahtao 阅读(136) 评论(0) 推荐(0) 编辑
摘要:题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 思路: (1)我 阅读全文
posted @ 2020-03-19 10:08 leahtao 阅读(124) 评论(0) 推荐(0) 编辑
摘要:牛客网: 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。 n<=39 解题思路:这里如果用递归的话时间复杂度和空间复杂度都会很高 function Fibonacci(n){ if(n == 0 || n == 1) { return n } 阅读全文
posted @ 2020-03-19 10:03 leahtao 阅读(103) 评论(0) 推荐(0) 编辑
摘要:watch方法 也叫用户Watcher,是通过new Watcher产生的一个实例。 new Watcher的时候会执行get方法,get方法会将当前用户Wathcer放入Dep.target中,然后执行getter方法,去实例上取值,取值就会调用get方法,进行依赖收集,当值发生变化了就调用wat 阅读全文
posted @ 2020-03-18 22:28 leahtao 阅读(514) 评论(0) 推荐(0) 编辑
摘要:假设页面有四个地方需要更新属性,那我们希望不要更新四次,而是一次性更新。 防止不停的更新 把需要更新的watcher先存起来 放进一个异步队列 把重复的watcher过滤掉 等待这轮更新完就清空队列 就是说等待主执行栈执行完了就执行异步任务,也可以理解为页面所有属性都赋值完再执行这个异步方法 /** 阅读全文
posted @ 2020-03-18 18:26 leahtao 阅读(525) 评论(0) 推荐(0) 编辑
摘要:首先明确为什么药依赖收集?是为了当数据的属性发生了更改之后可以通知那些曾经使用了数据的地方。 对象依赖收集的过程:初始化的时候,会给每一个数据定义响应式,同时会给每一个属性一个new Dep(),每一个dep 有一个 唯一标识id,这个Dep就是用来收集依赖的, 然后当页面取值的时候会调用get方法 阅读全文
posted @ 2020-03-18 18:23 leahtao 阅读(292) 评论(0) 推荐(0) 编辑
摘要:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 思路:由于栈是后进先出,所以先依次进入栈1,再从栈1依次弹出到栈2,这样栈1和栈2元素的顺序就正好相反了,然后弹出栈2顶部的元素,就完成了一个先进先出的过程。 维护两个栈 stack1 和 stack2,其中 st 阅读全文
posted @ 2020-03-17 22:53 leahtao 阅读(113) 评论(0) 推荐(0) 编辑
摘要:产生原因 在 iOS 中,手指按住屏幕上下拖动,会触发 touchmove 事件。这个事件触发的对象是整个 webview 容器,容器自然会被拖动,剩下的部分会成空白。 在 W3C 文档中说 touchmove 事件的速度是可以实现定义的,取决于硬件性能和其他实现细节 preventDefault  阅读全文
posted @ 2020-03-17 18:01 leahtao 阅读(4208) 评论(0) 推荐(0) 编辑
摘要:输入一个链表,按链表从尾到头的顺序返回一个ArrayList。 思路:第一个遍历的节点,最后输出,最后一个遍历的先输出,可以利用数组,每次遍历将值存入一个数组,然后反转数组,或者是用栈存入然后再输出,后进先出。 数组实现: var reversePrint = function(head) { va 阅读全文
posted @ 2020-03-16 22:05 leahtao 阅读(137) 评论(0) 推荐(0) 编辑
摘要:矩阵是有序的,从左下角来看,向上数字递减,向右数字递增,因此从左下角开始查找,当要查找数字比左下角数字大时,右移,要查找数字比左下角数字小时,上移 function Find (array, target) { let row = array.lenghth //行 let col = array[ 阅读全文
posted @ 2020-03-15 23:55 leahtao 阅读(115) 评论(0) 推荐(0) 编辑
摘要:一、利用position的sticky属性 sticky页面不动的情况下,它就像 position:relative;而当页面滚动超出目标区域时,它表现的就像 position:fixed;,会固定在目标位置。 relative(相对定位)是指给元素设置相对于原本位置的定位,元素并不脱离文档流,因此 阅读全文
posted @ 2020-03-15 17:26 leahtao 阅读(963) 评论(0) 推荐(0) 编辑
摘要:归并排序采用的是分治的思想,首先是“分”,将一个数组反复二分为两个小数组,直到每个数组只有一个元素;其次是“治”,从最小数组开始,两两按大小顺序合并,直到并为原始数组大小,下面是图解: 分”就是将原始数组逐次二分,直到每个数组只剩一个元素,一个元素的数组自然是有序的,所以就可以开始“治”的过程了。 阅读全文
posted @ 2020-03-13 21:44 leahtao 阅读(2579) 评论(0) 推荐(2) 编辑
摘要:类似于这样: 下面内容的显示是由上面的三个tabbar决定的 思路:上面的tabbar是一个组件,下面的内容是一个组件,整体父组件是一个,给上面的tabbar监听点击事件,并且传出事件到父组件,父组件根据点击不同的按钮传数据给下面内容的组件 子组件: 父组件: 阅读全文
posted @ 2020-03-11 14:37 leahtao 阅读(830) 评论(0) 推荐(0) 编辑
摘要:描述:如下图,点击哪个tabbar就让哪个的样式改变 思路: 定义一个变量currentIndex用来记录点击的是哪个,然后当点击的index == currentIndex时,就给它绑定一个class active 实现: <template> <div class="tabcontrol"> < 阅读全文
posted @ 2020-03-10 20:45 leahtao 阅读(427) 评论(0) 推荐(0) 编辑
摘要:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。 注意你不能在买入股票前卖出股票。 示例 1: 输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买 阅读全文
posted @ 2020-03-09 22:21 leahtao 阅读(69) 评论(0) 推荐(0) 编辑
摘要:给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。 暴力解法: 遍历,遇到负和抛弃之前的结果,重新积累,期间保留 阅读全文
posted @ 2020-03-06 22:02 leahtao 阅读(79) 评论(0) 推荐(0) 编辑
摘要:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 你可以假设数组中无重复元素。 示例 1: 输入: [1,3,5,6], 5输出: 2 解法一:for循环 var searchInsert = function(nums, ta 阅读全文
posted @ 2020-03-05 23:20 leahtao 阅读(114) 评论(0) 推荐(0) 编辑
摘要:给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 示例 1: 给定 nums = [ 阅读全文
posted @ 2020-03-05 22:36 leahtao 阅读(102) 评论(0) 推荐(0) 编辑
摘要://1.数组去重 var fruits = ["banana", "apple", "orange", "watermelon", "apple", "orange", "grape", "apple"]; //方法一 var arr = Array.from(new Set(fruits)) // 阅读全文
posted @ 2020-03-05 22:02 leahtao 阅读(128) 评论(0) 推荐(0) 编辑
摘要:let x = String(loanRate).indexOf('.') + 1; //小数点的位置 let y = String(loanRate).length - x; //小数的位数 阅读全文
posted @ 2020-03-05 13:50 leahtao 阅读(3905) 评论(0) 推荐(0) 编辑
摘要:给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例: 给定数组 nums = [-1, 0, 1, 2, -1, -4], 满足要求的三元组集合 阅读全文
posted @ 2020-03-04 22:01 leahtao 阅读(153) 评论(0) 推荐(0) 编辑
摘要:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 num 阅读全文
posted @ 2020-03-03 23:15 leahtao 阅读(227) 评论(0) 推荐(0) 编辑
摘要:给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。 示例 1: 输入: "aba"输出: True示例 2: 输入: "abca"输出: True解释: 你可以删除c字符。 左右如果相等那就继续比较,当左右不相等的时候,要么删除左边的一个再进行比较,要么删除右边的一个接着进行比较, 阅读全文
posted @ 2020-03-02 22:59 leahtao 阅读(117) 评论(0) 推荐(0) 编辑
摘要:题目描述: 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明:本题中,我们将空字符串定义为有效的回文串。 示例 1: 输入: "A man, a plan, a canal: Panama"输出: true示例 2: 输入: "race a car"输出: fa 阅读全文
posted @ 2020-03-02 21:11 leahtao 阅读(179) 评论(0) 推荐(0) 编辑
摘要:var str="abcdefg" //1、将字符串转成数组形式:split() var arr=str.split("") console.log(arr)//["a", "b", "c", "d", "e", "f", "g"] //2、将数组转成字符串形式:join() var strings 阅读全文
posted @ 2020-03-02 20:02 leahtao 阅读(150) 评论(0) 推荐(0) 编辑
摘要:手写Promise源码几乎是每个大厂面试要求必会的一个考点,每次听到源码,总有一种让人上头的感觉,因为自己从来没有实现过,总感觉这东西很难实现,最近再为跳槽做准备,从头写学了一下基础知识,手写了call源码、apply源码、Promise源码,感觉还挺有意思,不是想想的那么难。就是一个js的简答实现 阅读全文
posted @ 2020-03-01 17:45 leahtao 阅读(2995) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示