Javascript 通过比较对象属性,按原样返回对象(不进行排序)

Javascript 通过比较对象属性,按原样返回对象(不进行排序),javascript,jquery,json,asp.net-mvc,Javascript,Jquery,Json,Asp.net Mvc,我想根据对象的两个属性对对象进行排序 我有一个目标如下: 0:Object $id:"1" MetricValue:8 GeoValue:"EAST" DimensionValue:High DocCount:28 1:Object $id:"2" MetricValue:20 GeoValue:"EAST" DimensionValu

我想根据对象的两个属性对对象进行排序

我有一个目标如下:

    0:Object
        $id:"1"
        MetricValue:8
        GeoValue:"EAST"
        DimensionValue:High
        DocCount:28

    1:Object
        $id:"2"
        MetricValue:20
        GeoValue:"EAST"
        DimensionValue:Medium
        DocCount:28
    2:Object
        $id:"3"
        MetricValue:10
        GeoValue:"West"
        DimensionValue:High
        DocCount:30
    3:Object
        $id:"4"
        MetricValue:20
        GeoValue:"West"
        DimensionValue:Medium
        DocCount:30
我希望根据doc count和geovalue对对象进行排序,即我希望排序后的对象首先返回doccount值较高的对象,然后返回值较低的对象

i、 e.如下所示

        0:Object
            $id:"1"
            MetricValue:10
            GeoValue:"WEST"
            DimensionValue:High
            DocCount:30

        1:Object
            $id:"2"
            MetricValue:20
            GeoValue:"WEST"
            DimensionValue:Medium
            DocCount:30
        2:Object
            $id:"3"
            MetricValue:8
            GeoValue:"EAST"
            DimensionValue:High
            DocCount:28
        3:Object
            $id:"4"
            MetricValue:20
            GeoValue:"EAST"
            DimensionValue:Medium
            DocCount:28
下面的方法是我正在尝试的,但没有成功 这里的
result
是包含我上面提到的对象的对象

var Final= JSON.parse(JSON.stringify(result));
 var top10 = Final.sort(function (a, b) { return a.DocCount < b.DocCount ? 1 : -1; })
        .slice(0, 10);
var Final=JSON.parse(JSON.stringify(result));
var top10=Final.sort(函数(a,b){返回a.DocCount

有人能引导我走正确的道路吗?

假设您有一个对象数组,可以使用.sort()方法:

var数据=[{
$id:“1”,
度量值:8,
地理价值:“东方”,
维度值:“高”,
DocCount:28
},{
$id:“2”,
度量值:20,
地理价值:“东方”,
维度值:“中等”,
DocCount:28
},{
$id:“3”,
度量值:10,
地理价值:“西方”,
维度值:“高”,
单据数:30
},{
$id:“4”,
度量值:20,
地理价值:“西方”,
维度值:“中等”,
单据数:30
}]
console.log(“原始:”,数据);
数据排序(函数(a,b){
返回(a.DocCount!==b.DocCount)
?(a.DocCountb.GeoValue;
})

日志(“排序:”,数据)您似乎根本没有JSON,将对象字符串化只是为了将其解析回来是没有意义的。还有,到底是什么不起作用?是否存在任何错误等?当您在问题中显示对象时,请使用
console.log(JSON.stringify(obj))
。然后我们可以看到它们更像是有效的JavaScript对象,而不是这里的伪对象。