我正在尝试使用 jQuery 对一些元素的排序进行动画处理,并且我的排序图定义如下:
var mapping = [
[0, 5],
[1, 4],
[2, 3],
[3, 2],
[4, 1],
[5, 0]
];
mapping[0][0]
是元素的索引并且mapping[0][1]
是目标索引。
我的解决方案基本上是这样的:
var elements = [1, 2, 3, 4, 5, 6];
for (var i = 0; i < elements.length; i++) {
var clone1 = elements[mapping[i][0]];
var clone2 = elements[mapping[i][1]];
elements[mapping[i][0]] = clone2;
elements[mapping[i][1]] = clone1;
}
console.log(elements);
问题是,我正在处理我正在修改的对象,并且这些操作会自行撤消;我没有反转数组,而是返回相同的数组。
我如何在 JavaScript 中交换这样的元素?这是代码的JSFiddle 示例。