Cho mảng đối tượng có thuộc tính duration. Viết hàm trả về top n phần tử có duration lớn nhất.
Ví dụ
const arr = [ {'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':41,'slide':2,'view':0}, {'id':0,'start':0,'duration':29,'slide':3,'view':0}, {'id':0,'start':0,'duration':123,'slide':3,'view':0}, {'id':0,'start':0,'duration':417,'slide':2,'view':0}, {'id':0,'start':0,'duration':12,'slide':1,'view':0}, {'id':0,'start':0,'duration':67,'slide':2,'view':0}];const topN = (arr, n) => { if (n > arr.length) return false; return arr .slice() .sort((a, b) => b.duration - a.duration) .slice(0, n);};console.log(topN(arr, 3));console.log(topN(arr, 4));console.log(topN(arr, 5));Kết quả
Đầu ra trong console sẽ là:
[ { id: 0, start: 0, duration: 417, slide: 2, view: 0 }, { id: 0, start: 0, duration: 123, slide: 3, view: 0 }, { id: 0, start: 0, duration: 117, slide: 4, view: 0 } ][ { id: 0, start: 0, duration: 417, slide: 2, view: 0 }, { id: 0, start: 0, duration: 123, slide: 3, view: 0 }, { id: 0, start: 0, duration: 117, slide: 4, view: 0 }, { id: 0, start: 0, duration: 67, slide: 2, view: 0 } ][ { id: 0, start: 0, duration: 417, slide: 2, view: 0 }, { id: 0, start: 0, duration: 123, slide: 3, view: 0 }, { id: 0, start: 0, duration: 117, slide: 4, view: 0 }, { id: 0, start: 0, duration: 67, slide: 2, view: 0 }, { id: 0, start: 0, duration: 41, slide: 2, view: 0 } ]