Mảng object có key a (số) và b (chuỗi). Trả về mảng object mỗi b duy nhất với a lớn nhất.
Mã thực hiện
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));
Kết quả
[ { a: 4, b: 'apples' }, { a: 6, b: 'bananas' }, { a: 10, b: 'oranges' } ]