以不同的方式对相同的 observableArray 进行排序

Sort the same observableArray different ways

我有一个具有可观察属性的对象的 observableArray。我想两次显示这个数组,每次都有不同的排序顺序。这可能吗?

我已经尝试保留一个计算的 属性 来获取数组,对其进行排序并 returns,但是这对原始数组进行了排序并且没有按照我的要求进行。

function ViewModel(){
    var self = this;
    self.Items = ko.observableArray([]);
    self.ItemsOrdered = ko.computed(function(){
        var i = self.Items();
        return i.sort(function(left,right){
            return 1;
        });
    });
}

查看这个 jsfiddle:http://jsfiddle.net/qhg8t4je/1/ 在这里我颠倒了数组,希望在第一个列表中看到 A 的值按顺序在第二个列表中看到 B 的值按顺序排列,但是两个列表似乎都被颠倒了。

我找不到任何维护(或只是显示?)两种不同排序顺序的建议,我只能找到维护一个(就像我的 jsfiddle 所做的那样)的建议。

.sort 更新原始数组。克隆数组(例如 .slice())。

http://jsfiddle.net/qhg8t4je/2/