theme: jzman
highlight: atelier-cave-light
一、前言
工作中遇到这么一个功能,拖动了一些节点,放置在一个数组 currentNodes 中,然后进行下一步的处理。
当对拖动的那些节点进行删除、复制、撤销、重置等操作时,currentNodes 必然发生一些改变,这些改变可以是:
1. 新节点的添加(新 ID 的加入)
2. 旧节点的更新(版本切换)
3. 旧节点的删除(旧 ID 的删除)
我们需要对比新旧节点列表中的值,当其中的值发生变化时,找出需要删除的节点以及需要添加的节点,由于不变的节点中有我们设置好的配置,因此还要保证这些节点不可发生变动。
- 节点的结构如下:
js const node = { nodeId: 'node_1', versionId: 'v1' }
- 节点列表的结构如下: