基于价格javascript订购对象数组
我想知道如何在javascript中根据价格(从最高到最低)订购前3个对象数组基于价格javascript订购对象数组,javascript,jquery,arrays,object,Javascript,Jquery,Arrays,Object,我想知道如何在javascript中根据价格(从最高到最低)订购前3个对象数组 var obj =[{ id: "1", price: 20 },{ id: "2", price: 50, },{ id: "3", price: 100 },{ id: "4", price: 30 },{ id: "5", price: 80 }] 预期产量 result = [{ id: "3", price: 100 },{ id: "5", pric
var obj =[{
id: "1",
price: 20
},{
id: "2",
price: 50,
},{
id: "3",
price: 100
},{
id: "4",
price: 30
},{
id: "5",
price: 80
}]
预期产量
result = [{
id: "3",
price: 100
},{
id: "5",
price: 80
},{
id: "2",
price: 50,
}]
可以很容易地实现 此函数返回已排序的数组,并且不更改原始数组
var obj =[{
id: "1",
price: 20
},{
id: "2",
price: 50,
},{
id: "3",
price: 100
},{
id: "4",
price: 30
},{
id: "5",
price: 80
}]
function compare(a, b) {
if(a.price > b.price)
return 1;
if(a.price < b.price)
return -1;
// Equals
return 0;
}
var sorted = obj.sort(compare);
为什么不使用排序?谢谢,但希望在对象数组中获得最大前3位添加
.slice(3)
,到已排序的数组中。更新了答案,将其也包括在内。.slice(0,3)
-也修复了答案。它对@miyavv有帮助吗?是的,谢谢你的解决方案
var top3 = sorted.slice(0, 3);