Seeker
Seeker
 vue和react虽然都采用了diff算法。 但是diff设计是截然不同的, vue采用依赖收集追踪,可以更加细粒度的更新组件,即给模板使用到的每一个属性绑定监听, 而react是采用自顶而下的更新策略,每次小的改动都会生成一个全新的vdom。 不管是什么diff算法,核心都是一样的,**key的作用主要是为了高效的更新虚拟DOM列表,key 值是用来判断 VDOM 元素项的唯一依据** 。 使用key不保证100%比不使用快,这就和Vdom不保证比操作原生DOM快是一样的,这只是一种权衡,其实对于用index作为key是不推荐的,除非你能够保证他们不会发生变化。这个key要体现唯一,**通常推荐使用server给的SQL-ID**。通常接口返回的又没有SQL-ID,怎么办呢,又不能用随机数,只能用index代替喽! **推荐使用shortid生成唯一key的数组,和数据数组一起使用,省去提交数据时再重组数组。** 案例: ```js import React from 'react'; import shortid from 'shortid'; class Demo extends React.Component { constructor(props) {...
``` function add(...x) { var sum = x.reduce((a,b)=>a+b,0) var tmp = function(...y) { sum =sum+y.reduce((a,b)=>a+b,0) return tmp; }; tmp.toString = function() { return sum; }; return tmp; } console.log(+add(1)(2)(3)) //...
知乎:https://www.zhihu.com/question/66851503 从一棵树转化为另外一棵树,直观的方式是用动态规划,通过这种记忆化搜索减少时间复杂度。由于树是一种递归的数据结构,因此最简单的树的比较算法是递归处理。确切地说,树的最小距离编辑算法的时间复杂度是 O(n^2m(1+logmn)), 我们假设 m 与 n 同阶, 就会变成 O(n^3)。

> ```js > 'aaasdofjaopfjopaiiisjssfopiasdfffff'.match(/(.)\1+/g) > ``` > > 得到的结果是 > > ```js > ["aaa", "iii", "ss", "fffff"] > ``` > > 从这个数组里面找长度最长的元素并转化成需要的结果应该简单了吧 可以简化很多计算量!
### 所有的答案这个最优秀: @huangyanyang ``` function Sum(x){ let arr = Array(x) let resultArr = [...arr,...arr,...arr,...arr,...arr,...arr,...arr] return resultArr.length } ```
```js function print(n) { setTimeout(((n) => { //立即执行 console.log(n); })(n), Math.floor(Math.random() * 1000)); } for(var i = 0; i < 100; i++) { print(i); } function print(n) { setTimeout(() =>...
复杂度成指数增长,太可怕了
node 9 报错
> 欢迎大家提交自己的解题思路~ > > ``` > /** > * @param {number[]} nums > * @param {number} target > * @return {number[]} > */ > var twoSum = function(nums, target) {...