gpt4 book ai didi

javascript - 通过比较对象属性按原样返回对象(不排序)

转载 作者:行者123 更新时间:2023-12-03 03:59:13 26 4
gpt4 key购买 nike

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

我有一个对象如下,

    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

我想根据文档计数和地理值对对象进行排序,即我希望排序后的对象首先返回文档计数值较高的对象,然后返回较低值的对象。

即如下图

        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);

有人可以引导我走上正确的道路吗?

最佳答案

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

var data = [{
$id:"1",
MetricValue:8,
GeoValue:"EAST",
DimensionValue:"High",
DocCount:28
},{
$id:"2",
MetricValue:20,
GeoValue:"EAST",
DimensionValue:"Medium",
DocCount:28
},{
$id:"3",
MetricValue:10,
GeoValue:"West",
DimensionValue:"High",
DocCount:30
},{
$id:"4",
MetricValue:20,
GeoValue:"West",
DimensionValue:"Medium",
DocCount:30
}]
console.log("Original: ", data);

data.sort(function(a,b) {
return (a.DocCount !== b.DocCount)
? (a.DocCount < b.DocCount)
: a.GeoValue > b.GeoValue;
})
console.log("Sorted: ", data);

关于javascript - 通过比较对象属性按原样返回对象(不排序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44804057/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com