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对象,而不是这里的伪对象。