对嵌套的JSON数组进行排序

时间:2014-01-20 06:32:40

标签: javascript arrays json sorting hypercube

这是我的JSON结构:

Root
|- cells []
     |-Individual cells containing the following
                         |- Facts (Object)
                         |- Measures (Object)
                                 |- Key values pairs
|- other values

我需要就地对measure对象中的值进行排序。会有可能吗?如果不是,应该采用哪种优化方法来解决这个问题? 我可以将这些值提取到一个临时数组中然后对它们进行排序,然后搜索它们各自的键并重新排序整个JSON。但这似乎不是一个优化的解决方案。

我基本上试图在jsHypercube中实现排序:https://github.com/thesmart/js-hypercube。搜索了图书馆,但找不到任何排序方法。


添加示例JSON的快照: enter image description here

预期输出是_cells的排序数组,基于measures对象中的任何键,如成本,利润或收入。


根据@FelixKling的评论,我认为数据应该在序列化为JavaScript对象之前进行排序。 序列化前的原始数据: enter image description here

1 个答案:

答案 0 :(得分:1)

在@ FelixKling的建议的帮助下,我能够使用一个简单的代码块对其进行排序。发布它,因为它可能对其他人有帮助。

tempCube.sort(function(a, b) {
        var valueA, valueB;        

        valueA = a.measures.Cost; 
        valueB = b.measures.Cost;
        if (valueA < valueB) {
            return -1;
        }
        else if (valueA > valueB) {
            return 1;
        }
        return 0;
    });