鉴于
old: [a,b, e]
new: [a, c,d,e]
您可以通过拼接new
获得old
:
old.splice(1,1,c,d)
不幸的是,在单个命令中并不总是可行:
old: [a,b ,e, g,h]
new: [a c,d,e,f,g,h]
拼接:
old.splice(1,1,c,d) // [a,c,d,e,g,h]
old.splice(4,0,f) // [a,c,d,e,f,g,h]
是否有算法可以将两个数组的差异计算为一系列拼接?
使用案例:更新项目列表(例如在GUI中)而不刷新整个列表,但只能通过操作现有列表。 (可能有适当的移动和插入动画)