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の例です。