![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
刷题
笔描相思
这个作者很懒,什么都没留下…
展开
-
常见的算法题目
1:括号匹配function isMatch(str){ var map=new Map(); map.set('(',')'); map.set('{','}'); map.set('[',']'); var k=[]; for(let i=0;i<str.length;i++) { if(str[i]=='('||str[i]=='['||str[i]=='{') { k.push(str[i]); }else{原创 2021-10-23 14:48:42 · 221 阅读 · 0 评论 -
常见的前端题目
1:括号匹配function isMatch(str){ var map=new Map(); map.set('(',')'); map.set('{','}'); map.set('[',']'); var k=[]; for(let i=0;i<str.length;i++) { if(str[i]=='('||str[i]=='['||str[i]=='{') { k.push(str[i]); }else{原创 2021-10-23 14:47:12 · 121 阅读 · 0 评论 -
url转成对象
var strUrl="http:baidu.com/stu/?lx=1&name=aa&sex=man"; var s=strUrl.indexOf('?'); var strs=strUrl.slice(s+1); var strAry=strs.split('&'); var objs={}; for(var i=0;i<strAry.length;i++){ var item=strAry[i]; ..原创 2021-10-23 14:40:22 · 125 阅读 · 0 评论 -
驼峰命名对像
function mapKeyToCamelCase(data) { // 参考答案 const rename = (name) => { return name.split('_').reduce((pre, current) => { return pre + current[0].toUpperCase() + current.substring(1) }); } let res =原创 2021-10-23 14:28:08 · 93 阅读 · 0 评论 -
斐波拉去动态规划
function fib(n) { let array = new Array(n + 1).fill(null) array[0] = 0 array[1] = 1 for (let i = 2; i <= n; i++) { array[i] = array[i - 1] + array[i - 2] } return array[n]}fib(10)原创 2021-10-23 14:22:07 · 70 阅读 · 0 评论 -
二叉树的深度
var maxDepth = function(root) { if (!root) return 0 return Math.max(maxDepth(root.left), maxDepth(root.right)) + 1};原创 2021-10-23 14:21:09 · 51 阅读 · 0 评论 -
数组扁平化
let flatten = (nestedList) => { let result = []; let fn = function(target, ary) { for (let i = 0; i < ary.length; i++) { let item = ary[i]; if (Array.isArray(ary[i])) { fn(target, item); } else { target.push(item); }原创 2021-10-23 14:08:18 · 55 阅读 · 0 评论 -
层次输出二叉树
var levelOrder = function(root) { if (!root) return []; let queue = []; let res = []; let level = 0; queue.push(root); let temp; while (queue.length) { res.push([]); let size = queue.length; // 注意一下: size--; //在层次遍历中是一个非常重要的技巧 while (size-原创 2021-10-22 12:02:29 · 206 阅读 · 0 评论 -
promise all的实现
function promiseAll(Promises){ return new Promise(function(resolve,reject){ if(!Array.isArray(Promises)) { return reject(new TypeError("argument")); } var countNum=0; var promiseNum=Promises.length; var resolvedva原创 2021-10-22 11:58:36 · 67 阅读 · 0 评论 -
instanceof的实现原理
function instanceOf(left, right) { let leftValue = left.__proto__; let rightValue = right.prototype; while (true) { if (leftValue === null) { return false; } if (leftValue === rightValue) { return t原创 2021-10-22 11:53:25 · 91 阅读 · 0 评论 -
反转链表练习
var reverseList = function(head) { // 判断下变量边界问题 if (!head || !head.next) return head // 初始设置为空,因为第一个节点反转后就是尾部,尾部节点指向 null let pre = null let current = head let next // 判断当前节点是否为空 // 不为空就先获取当前节点的下一节点 // 然后把当前节点的 next 设为上一原创 2021-10-22 11:43:06 · 59 阅读 · 0 评论 -
快排的练习
function sort(array) { if (!checkArray(array)) return quickSort(array, 0, array.length - 1); return array;}function quickSort(array, left, right) { if (left < right) { swap(array, , right) // 随机取值,然后和末尾交换,这样做比固定取一个位置的复杂度略低 let ind原创 2021-10-22 11:41:12 · 67 阅读 · 0 评论 -
异步的学习
(1)promise1:实现原理主要是通过回调函数来实现,内部封装了回调函数,通过then方法链式调用,将异步的代码以同步的形式表现出来。2:promise的特点状态只有三种:等待,成功,失败状态的改变只能改变一次3:promise的缺点一旦执行不能取消,出现错误要通过回调函数捕获4:promis构造函数调用和promise的链式调用的区别构造函数的调用是立即执行的new Promise((resolve, reject) => { console.log('new Promi原创 2021-09-22 09:21:48 · 109 阅读 · 0 评论 -
深拷贝和浅拷贝
1:浅拷贝就是指赋值对象的一层给另外一个对象,深拷贝表示把一个对象的每一层都赋值给一个另外一个对象,让这两个对象没有一点关联,深拷贝和浅拷贝只针对于引用类型。浅拷贝的方法:Array.assign()function clone(obj) { return Object.assign(obj, {}) }for in:function clone(obj) { var target={}; for(var key in obj) { if(obj.h原创 2021-07-25 15:35:45 · 80 阅读 · 0 评论 -
防抖和节流
防抖:解决的问题就是在一段时间间隔内多次触发事件的时候,只会执行一次节流:解决的问题是减少一段时间的触发频率1:函数在指定时间内只会触发一次,具体实现方法第一次触发函数的时候,延迟delay时间执行,如果在delay时间段内再次触发该函数,则重新开始计时如果delay时间段内没有触发该函数,则执行该函数 function bunde(fn ,depaly) { let timetar=null; return function() { if(timetar)原创 2021-10-22 11:25:02 · 72 阅读 · 0 评论 -
new的实现
1:首先会创建一个对象2:创建构造函数上面的属性和方法给这个对象3:将这个对象的__proto__的属性赋一个构造函数的protypeof<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title> </title> <script> // alert(2423) // console.log("423"); fun原创 2021-10-22 11:16:12 · 70 阅读 · 0 评论