Jak zamienić dwa elementy w observableArray?

Mam przycisk, który przesuwa przedmiot o jedną pozycję w lewo w observableArray. Robię to w następujący sposób. Wadą jest jednak to, że kategorie () [index] są usuwane z tablicy, odrzucając w ten sposób wszelkie manipulacje DOM (za pomocą sprawdzania poprawności jQuery w moim przypadku).

Czy istnieje sposób na zamianę dwóch elementów bez użycia tymczasowej zmiennej, aby zachować węzeł DOM?

<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>

questionAnswers(4)

yourAnswerToTheQuestion