让我们以这个数组为例
ar = [6,3,5,1,2]
我想将它转换为另一个数组,我可能只使用两个操作 - 在特定位置插入项目(splice(i,0,item))或从特定位置删除项目(splice(i,1))。我正在寻找使用最少数量的接头的解决方案。
第二个重要条件是我们考虑具有唯一值的数组,我们的数组不包含双精度数。
例如,
ar1 = [6,3,10,5,1,2];
ar2 = [6,3,1,2,5];
很明显,如果我们想从 ar 中得到 ar1,我们只需要一个拼接 - ar.splice(2,0,10)。如果我们想得到ar2,我们必须做两次拼接:ar.splice(2,1)然后push(5)(第二个等于splice(ar.length,0,5))
顺便说一句,这个任务自然具有实用价值。例如,让我们想象一下产品列表和产品过滤器。我们改变过滤器的设置和列表分别改变。并且每一个变化都伴随着美丽的jquery慢速向上滑动-向下滑动动画。此动画可能会向上滑动并隐藏特定项目或插入并向下滑动一个新项目。任务是减少这些动画的数量。这意味着我们试图最小化列表的 DOM 操作数量。