Я пытаюсь оживить сортировки несколько элементов с 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.
Спасибо, это было действительно близко к тому, что я искал. В моем фактическом коде 'элементы' могут иметь произвольную длину, а' mapping' обычно имеет длину от 2 до 5, поэтому я немного изменил код: http://jsfiddle.net/fxnTG/2/ – Blender
А, У меня был только один тест. –