Wie tausche ich zwei Elemente in einem observableArray aus?

Ich habe eine Schaltfläche, mit der ein Element in einem ObservableArray um eine Position nach links verschoben wird. Ich mache es wie folgt. Der Nachteil ist jedoch, dass categories () [index] aus dem Array entfernt wird, wodurch jegliche DOM-Manipulation (in meinem Fall durch jQuery-Validierung) auf diesem Knoten verworfen wird.

Gibt es eine Möglichkeit, zwei Elemente ohne Verwendung einer temporären Variablen auszutauschen, um den DOM-Knoten beizubehalten?

<code>    moveUp: function (category) {
        var categories = viewModel.categories;
        var length = categories().length;
        var index = categories.indexOf(category);
        var insertIndex = (index + length - 1) % length;

        categories.splice(index, 1);
        categories.splice(insertIndex, 0, category);
        $categories.trigger("create");
    }
</code>

Antworten auf die Frage(4)

Ihre Antwort auf die Frage