從物件的 javascript 陣列中獲取前 n 項最大值
假設我們有一個這樣的物件陣列 −
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}
];我們必須編寫一個函式,它接受這個陣列,並在另一個數組中返回該陣列的前 n 個元素(前 n 個表示 duration 值最高的物件)。
因此,讓我們為這個問題編寫程式碼 −
示例
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) => {
return b.duration - a.duration
})
.slice(0, n);
};
console.log(topN(arr, 3));
console.log(topN(arr, 4));
console.log(topN(arr, 5));輸出
控制檯中的輸出將為 −
[
{ 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 }
]
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP