1,双端比较,所谓双端比较就是设置四个指针,分别是,新一组节点的开始位置的指针,新一组节点的结束位置的指针,旧一组节点的开始位置的指针,旧一组节点的结束位置的指针,通过四个IF判断,如果有一个条件满路其中的KEY相等,则进行更新操作,如果索引位置不相等则进行位移DOM操作,如果相等则只需要进行更新操作,然后在相位的判断里移动索引位置,在其中需要特别注意的是当四个指针都无法找到KEY时需要另外加一个判断去找 与当前新节点KEY对应的旧节点中的KEY,然后对找到的节点进行更新与位移操作,这些操作都放在一个WHILE循环中循环终止条件是 新节点的开始索引大小等于结整索引,旧节点的开始索引大于等于结束索引,在新增节点时将新节点中的KEY去旧节点找如果没找到说明是新增节点,进行元素挂载即可,这样还会有一种缺陷需要使用判断来处理,新增节点未挂载的情况,当新的开始节点小于等于结束节点,与旧节点的结束索引小于开始索引时进行节点挂载操作,还有一种情况需要移除不存在的元素,当新节点的结束索引小于新节点的开始索引,与旧节点的开始索引小于等于旧节点的结束索引,移除旧节点的内存