BaconZhang
BaconZhang
``` let result = Object.entries({ 1: 222, 2: 123, 5: 888 }).reduce( (prev, [key, value]) => { prev[key - 1] = value; return prev; }, Array.from( { length: 12 },...
`const arr1 = ['A1', 'A2', 'B1', 'B2', 'C1', 'C2', 'D1', 'D2']` `const arr2 = ['A', 'B', 'C', 'D']` `const res = [].concat(...arr2.map(i => arr1.filter(j => j.startsWith(i)).concat(i)))` `console.log(res)`
`const arr = [[1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14]]]], 10];` `const flat = (array) => [].concat(...array.map(i => Array.isArray(i) ? flat(i)...
@liuliangsir 感谢指正,这里使用reduceRight比reverse加reduce更简洁
这个问题描述有问题,如果是求交集,那么应该是两个集合的运算,而[集合具有互异性](https://zh.wikipedia.org/wiki/%E9%9B%86%E5%90%88_(%E6%95%B0%E5%AD%A6)),这样像`[1,2,2,1]`这样的数组就不能视为集合,自然也不存在所谓的交集。我认为这个题目更好的描述是“求两个数组的最长公共子序列”。 如果是两个集合求交集,那么利用 Set 的 has 方法就很简单了: ```javascript const intersection = (a, b) => new Set([...a].filter(x => b.has(x))); ``` 如果是两个数组的最长公共子序列,[这位大佬的答案就很完美了](https://github.com/Advanced-Frontend/Daily-Interview-Question/issues/102#issuecomment-485341146)。
写个链表实现 ```javascript class Node { constructor(func = null) { this.func = func; this.next = null; } async exec() { if (this.func) { await this.func(); } if (this.next && this.next.func) {...
> 概念上我觉得没啥问题,具体在业务上有啥应用的地方吗(尤其是前端)? > > 2.14补充 > 对象的深拷贝 这其实是和公司的具体业务相关的,我们公司把在业务层背后抽象了一套树形结构的领域对象模型,整个项目里少不了折腾树的递归,这时候发现熟练掌握深度遍历和广度遍历就十分有用了。
> 在我看来 Virtual DOM 真正的价值从来都不是性能,而是它 1) 为函数式的 UI 编程方式打开了大门;2) 可以渲染到 DOM 以外的 backend,比如 ReactNative。 第2条我理解,但是第1条有点没有理解,为什么说Virtual DOM为函数式UI编程方式打开了大门呢?