【问题标题】:Sort the same observableArray different ways以不同的方式对相同的 observableArray 进行排序
【发布时间】:2015-05-16 11:03:57
【问题描述】:

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

我尝试保留一个计算属性来获取数组,对其进行排序并返回它,但这会对原始数组进行排序并且不符合我的要求。

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 所做的那样)。

【问题讨论】:

    标签: javascript arrays sorting knockout.js


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-12
      • 2012-04-12
      • 2016-01-02
      • 2017-03-06
      相关资源
      最近更新 更多