Javascript 对象数组中的前2个最大值
我有一个像Javascript 对象数组中的前2个最大值,javascript,Javascript,我有一个像 [ {"id":0,"start":0,"duration":117,"slide":4,"view":0}, {"id":0,"start":0,"duration":12,"slide":1,"view":0}, {"id":0,"start":0,"duration":8,"slide":3,"view":0}, {"id":0,"start":0,"duration":7,"slide":2,"view":0} ]; 我想得到3个具有前3个持续时间值的对象。您可
[ {"id":0,"start":0,"duration":117,"slide":4,"view":0},
{"id":0,"start":0,"duration":12,"slide":1,"view":0},
{"id":0,"start":0,"duration":8,"slide":3,"view":0},
{"id":0,"start":0,"duration":7,"slide":2,"view":0}
];
我想得到3个具有前3个持续时间值的对象。您可以使用降序对它们进行排序,并获取前三个元素
var数组=[{id:0,开始:0,持续时间:7,幻灯片:2,视图:0},{id:0,开始:0,持续时间:12,幻灯片:1,视图:0},{id:0,开始:0,持续时间:117,幻灯片:4,视图:0},{id:0,开始:0,持续时间:8,幻灯片:3,视图:0}],
top3duration=array.sort(函数(a,b){
返回b.持续时间-a.持续时间;
}).切片(0,3);
console.log(Top3持续时间)代码>
.as console wrapper{max height:100%!important;top:0;}
您可以使用降序对它们进行排序,并获取前三个元素
var数组=[{id:0,开始:0,持续时间:7,幻灯片:2,视图:0},{id:0,开始:0,持续时间:12,幻灯片:1,视图:0},{id:0,开始:0,持续时间:117,幻灯片:4,视图:0},{id:0,开始:0,持续时间:8,幻灯片:3,视图:0}],
top3duration=array.sort(函数(a,b){
返回b.持续时间-a.持续时间;
}).切片(0,3);
console.log(Top3持续时间)代码>
.as console wrapper{max height:100%!important;top:0;}
我将通过几个快速步骤完成您的工作
var myList = [ {"id":0,"start":0,"duration":117,"slide":4,"view":0},
{"id":0,"start":0,"duration":12,"slide":1,"view":0},
{"id":0,"start":0,"duration":8,"slide":3,"view":0},
{"id":0,"start":0,"duration":7,"slide":2,"view":0}
];
outList = myList.sort(function(a,b){ return b.duration - a.duration; }).slice(0,3);
return outList;
我将用几个快速步骤来完成你的工作
var myList = [ {"id":0,"start":0,"duration":117,"slide":4,"view":0},
{"id":0,"start":0,"duration":12,"slide":1,"view":0},
{"id":0,"start":0,"duration":8,"slide":3,"view":0},
{"id":0,"start":0,"duration":7,"slide":2,"view":0}
];
outList = myList.sort(function(a,b){ return b.duration - a.duration; }).slice(0,3);
return outList;
但是您的主阵列将被修改。如果您想将这些作为新数组,那么使用切片(0,3)并将其分配给新数组作为[Fallenreaper's]答案
var myList = [ {"id":0,"start":0,"duration":117,"slide":4,"view":0},
{"id":0,"start":0,"duration":12,"slide":1,"view":0},
{"id":0,"start":0,"duration":8,"slide":3,"view":0},
{"id":0,"start":0,"duration":7,"slide":2,"view":0}
];
outList = myList.sort(function(a,b){ return b.duration - a.duration; }).slice(0,3);
return outList;
但是您的主阵列将被修改。如果您想将这些作为新数组,则使用切片(0,3)并将新数组分配为[FallenReapper's]答案可能的重复项,以便您希望获得按持续时间长度排序的前3个?两个或三个顶部元素?可能的重复项,以便您希望获得按持续时间长度排序的前3个?两个或三个顶部元素?
var myList = [ {"id":0,"start":0,"duration":117,"slide":4,"view":0},
{"id":0,"start":0,"duration":12,"slide":1,"view":0},
{"id":0,"start":0,"duration":8,"slide":3,"view":0},
{"id":0,"start":0,"duration":7,"slide":2,"view":0}
];
outList = myList.sort(function(a,b){ return b.duration - a.duration; }).slice(0,3);
return outList;