摘要:
斐波那契数列 1、1、2、3、5、8、13、21、34...... F(1) = 1; F(2) = 1; F(n) = F(n-1)+F(n-2) (n >=3) 方法1,公式版,递归 const fbi = (n) => { if(n 1 || n 2) { return 1; } return 阅读全文
摘要:
1、合并两个有序数组,时间复杂度为O(n) 思路:两个指针,从零开始,比较两个数组里面的指针,每次把两者之中最小的放到结果数组中来。 const getOrderList = (list1, list2) => { let newList = []; let i = 0; let j = 0; wh 阅读全文
摘要:
symbol symbol函数生成的数据,表示的是独一无二的值。它是js语言的第7种数据类型, 可用于对象的属性名,防止某个属性名被不小心改写或者覆盖,比如一些常量属性可以设置为symbol值。 let mySymbol = Symbol(); // 第一种写法 let a = {}; a[mySy 阅读全文
摘要:
字符串 1、replaceAll(),相比于replace,会一次性替换所有的匹配。 2、includes(),返回布尔值,表示是否找到了参数字符串。 3、repeat(),方法返回一个新的字符串,表示将原字符串重复n次。 4、模板字符串 数值 1、Number.isFinite()是用来检查一个数 阅读全文
摘要:
参考https://juejin.cn/post/6844904079353708557 1、主任务队列和等待任务队列 浏览器是多线程的,js是单线程的, js实现异步处理机制主要依赖浏览器的任务队列 任务队列分为主任务队列和等待任务队列。 在主任务队列自上而下执行的时候,如果遇到一个异步操作任务, 阅读全文
摘要:
1、一维的嵌套数组 const flattenArr = (list = []) => list.reduce((total, cur) => { total.concat(cur); return total; }, []); 2、通用的方法,数组嵌套数组 const flattenArr = ( 阅读全文
摘要:
1、找到重复的元素 只找到是哪几个重复的元素 const findDup = (list = []) => { const result = []; list.forEach(item => { if(list.indexOf(item) !== list.lastIndexOf(item) && 阅读全文
摘要:
普通的实现 累加n次初始值 String.prototype.nRepeat = function(count){ let str = this.valueOf(); let res = ''; while(count > 0){ res =res + str; count--; } } 优化方案 阅读全文
摘要:
reduce() 方法对数组中的每个元素执行一个由您提供的reducer函数(升序执行),将其结果汇总为单个返回值。(汇合) 先看个例子 const array1 = [1, 2, 3, 4]; const reducer = (accumulator, currentValue) => accum 阅读全文
摘要:
参考promise详解:https://juejin.cn/post/6844903664209887246 async、await 使用 async/await, 搭配promise,可以通过编写形似同步的代码来处理异步流程, 提高代码的简洁性和可读性 async 用于申明一个 function 阅读全文