相关疑难解决方法(0)

按日期排序数组会产生意外结果

这听起来像一个简单的问题,但我花了我的星期天试图找出下面描述的我的实现有什么问题所以我作为最后的手段将它发布到SO.

我有一个从服务器接收数据结构的javascript应用程序.出于性能原因,服务器端发送未排序的数据.

以下是接收数据的javascript代码片段:

    var seriesRawDataArray = ko.observableArray();
    ...
    analyticscontext.series(seriesRawDataArray).done(function () {
        renderSeries();
    });
Run Code Online (Sandbox Code Playgroud)

analyticscontext模块查询使用AJAX的数据:

function series(seriesData) {
    return $.ajax({
        url: "/api/analytics/series",
        type: "GET",
        success: function (data) {
            return seriesData(data);
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

renderSeries执行渲染它之前的数据排序:

    // Sort the data by date using moment.js
    seriesRawDataArray.sort(function (left, right) {
        var leftDate = moment.utc(left.timeStamp);
        var rightDate = moment.utc(right.timeStamp);
        var diff = leftDate.diff(rightDate);
        return diff > 0;
    });
Run Code Online (Sandbox Code Playgroud)

问题

这是我从服务器收到的数据样本: 在此输入图像描述

注意最后的未分类项目.在seriesRawDataArray.sort似乎有原来的阵列,它没有得到不管我在分类方法发生变化排序没有影响.输出总是:

在此输入图像描述

注意这里的未排序元素.我正在使用的库和数据肯定不是问题,因为这个jsfiddle运行得很好!这段代码有问题吗?

javascript arrays sorting knockout.js

31
推荐指数
2
解决办法
4万
查看次数

标签 统计

arrays ×1

javascript ×1

knockout.js ×1

sorting ×1