我試圖動畫與jQuery的幾個要素的排序交換陣列價值觀和我的排序地圖的定義是這樣的:JavaScript的:通過索引
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 example。
謝謝,這真的很接近我正在尋找的東西。在我的實際代碼中,'elements'可以有任意長度,'mapping'通常是2到5,所以我修改了一下你的代碼:http://jsfiddle.net/fxnTG/2/ – Blender
啊,我只有一個測試用例。 –