獲取 JavaScript 陣列中每個鍵的最大值
假設我們有一個包含物件陣列,如下所示 -
const arr = [
{a:1, b:"apples"},
{a:3, b:"apples"},
{a:4, b:"apples"},
{a:1, b:"bananas"},
{a:3, b:"bananas"},
{a:5, b:"bananas"},
{a:6, b:"bananas"},
{a:3, b:"oranges"},
{a:5, b:"oranges"},
{a:6, b:"oranges"},
{a:10, b:"oranges"}
];我們需要編寫一個 JavaScript 函式,該函式接受一個這樣的陣列,並返回一個物件陣列。
該陣列應包含一個物件,其中“b”屬性的每個唯一值都是“a”屬性具有最高值的。
程式碼如下 -
const arr = [
{a:1, b:"apples"},
{a:3, b:"apples"},
{a:4, b:"apples"},
{a:1, b:"bananas"},
{a:3, b:"bananas"},
{a:5, b:"bananas"},
{a:6, b:"bananas"},
{a:3, b:"oranges"},
{a:5, b:"oranges"},
{a:6, b:"oranges"},
{a:10, b:"oranges"}
];
const pickHighest = arr => {
const res = [], map = {};
arr.forEach(el => {
if (!(el['b'] in map)) {
map[el['b']] = res.push(el) - 1;
return;
};
if(res[map[el['b']]]['a'] < el['a']){
res[map[el['b']]] = el;
};
});
return res;
};
console.log(pickHighest(arr));以下是控制檯上的輸出 -
[
{ a: 4, b: 'apples' },
{ a: 6, b: 'bananas' },
{ a: 10, b: 'oranges' }
]
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP