获取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' }
]热门推荐
10 圣诞祝福语简短小学
11 祖国七十华诞简短祝福语
12 老师送的祝福语简短
13 生日祝福语大全女生简短
14 祝女性生日祝福语简短
15 牛年女神节祝福语简短
16 情人表白祝福语简短大气
17 老公开业祝福语简短
18 官宣新年祝福语简短