js
Ms_杨
just go
展开
-
js 数组扁平化处理flat
js 数组扁平化处理flat1、直接调用flat2、正则表达式匹配3、递归4、数组累加器reduce5、展开运算符...和while循环1、直接调用flat flat (arr) { return arr.flat(Infinity) },2、正则表达式匹配 flat1 (arr) { const str = JSON.stringify(arr) const reg = /(\[\]))/g return str.replace原创 2020-11-18 21:58:38 · 479 阅读 · 0 评论 -
js股票买卖问题
js股票买卖问题框架实例1、k = 1最多只允许完成一笔交易2、k = n无限制交易次数3、冷冻期为 1 天:卖出股票后,你无法在第二天买入股票4、每笔交易你只需要为支付一次手续费5、只可进行2笔交易6、只可进行k笔交易框架1、可进行1、2、无限制次交易 buyAndSellShares (prices) { <!--考虑初始值--> let dp_i_0 = 0 let dp_i_1 = -Infinity原创 2020-11-05 10:47:08 · 476 阅读 · 0 评论 -
js滑动窗口算法
滑动窗口算法框架76.最小覆盖子串567.字符串的排列438.找到字符串中所有字母的异位词3.无重复字符的最长子串框架slideWindow (s, t) { <!--定义需要个数的对象、当前窗口对象--> const need = {} const window = {} <!--定义左右索引--> let left = 0 let right = 0 <!--valid种类数--> let valid原创 2020-11-05 10:17:05 · 1421 阅读 · 0 评论 -
Vue双向绑定原理及实现
Vue双向绑定原理及实现双向绑定原理原理实现1. Observer2. Watcher3. Compile4. Vue模拟对象5. index.html双向绑定原理原理vue数据双向绑定是通过数据劫持结合发布者-订阅者模式的方式来实现的实现首先,设置监听器Observer,对vue实例中的data数据进行劫持监听,核心方法就是Object.defineProperty(),递归遍历所有属性,添加get、set方法,其中利用订阅器Dep来收集订阅者,若访问属性则添加到订阅器,若数据变化则通知订阅原创 2020-10-24 22:16:00 · 449 阅读 · 0 评论 -
防抖节流
防抖节流目的解决短时间内高频触发某事件导致响应速度跟不上频率,从而出现延迟、停顿、卡死等问题防抖1. 概念高频触发事件后n秒内函数只会执行一次,如果n秒内高频事件再次被触发,则重新计算时间2. 实现方式:每次触发事件时设置一个延迟调用方法,并且取消之前的延时调用方法,其中使用到闭包来缓存定时器缺点:如果事件在规定的时间间隔内被不断的触发,则调用方法会被不断的延迟3. 应用登录、发短信时,用户点击多次,只发送一次请求resize浏览器窗口变化,1秒内只重绘一次图表文本编辑原创 2020-10-18 16:38:14 · 870 阅读 · 0 评论 -
js 数组去重
js 数组去重js 数组去重1、forEach、indexOf2、forEach、includes3、forEach、对象属性存在4、filter删选5、ES6的Set结构、Array.from方法js 数组去重1、forEach、indexOf利用数组原型对象上的forEach方法遍历,indexOf方法筛选arrayUnique (arr) { const newArr = [] arr.forEach(item => { if (newArr.indexOf(item)原创 2020-10-12 16:06:19 · 238 阅读 · 0 评论