lhyt

Results 27 comments of lhyt

```javascript [2, 10, 3, 4, 5, 11, 10, 11, 20] .sort((a, b) => a - b) .reduce((res, cur) => { const { answer, cursor, pre } = res; const current...

```js function getAllDays(from, to) { const res = []; let current = Date.parse(from); const toTimeStamp = Date.parse(to); while((current += 86400000)

```js // 复原 function recover(arr) { return arr.reduceRight((res, cur) => { if (res.length) { res.push(res.shift()); } res.push(cur); return res; }, []); } const res = recover([1, 2, 3, 4, 5,...

```javascript function convertToTree(arr) { const MAP = arr.reduce((res, cur) => res.set(cur.id, cur), new Map()); return [...MAP].reduce((result, [, value]) => { const { pId } = value; if (pId === undefined)...

```javascript function findTargetStr(str) { return (str.match(/(.)\1*/g) || []).reduce((res, cur) => ( cur.length > res.max ? (res.r = { [cur[0]]: cur.length }, res.max = cur.length) : (cur.length === res.max && (res.r[cur[0]]...

```js function findMedianSortedArrays(nums1, nums2) { let [{ length: m }, { length: n }] = [nums1, nums2]; if (m > n) { [m, n] = [n, m]; [nums1, nums2] =...

```javascript Promise.all = function (promiseArrs) { //在Promise类上添加一个all方法,接受一个传进来的promise数组 return new Promise((resolve, reject) => { //返回一个新的Promise let arr = []; //定义一个空数组存放结果 let i = 0; function handleData(index, data) { //处理数据函数 arr[index] =...

说all体验不好,那我们也可以自己做一个some方法,表示全部失败才算失败 ```javascript Promise.some = function (promiseArrs) { return new Promise((resolve, reject) => { let arr = []; //定义一个空数组存放结果 let i = 0; function handleErr(index, err) { //处理错误函数 arr[index] = err;...

常规的解法就是增删改查,修改next的指向和value值或者删除增加节点。这里不再走寻常路。维护一个数组,通过代理数组操作返回链表。数组型的api基本都是O(n)时间复杂度和O(1)空间复杂度,但是这里最后会有一个全部遍历同步的操作,额外稳定增加O(n)时间复杂度。如果想做到O(1)复杂度的修改,则需要劫持每一个数组操作,并利用额外缓存存下各种信息,大约还需要O(n)空间复杂度才能换取O(1)的时间复杂度 ```javascript class LinkList { constructor(...args) { this.temp = [] this.temp.push(...args) } } function createLinkList(...init) { const ret = new LinkList(...init) let current const result = ret.temp.reduce((res, cur) => {...

需要考虑交换key、复杂数据类型、环引用、symbol key ```js function flattern(o, path = '', res = {}) { Object.keys(o).forEach((key) => { if (typeof o[key] === 'object') { flattern(o[key], `${path}.${key}`, res) } else { res[`${path}.${key}`.slice(1)] = o[key]...