首页 > 解决方案 > 在javascript中查找导致从键/值对中绘制的最大值持有键

问题描述

我很想知道一种打印key具有最大值的方法。下面是几个条件,

代码块:

let obj = {
  a: 4,
  b: 4,
  c: 2,
  d: 1
};

let maxValueKey = Object.keys(obj).reduce((a, b) => obj[a] > obj[b] ? a : b);

console.log(maxValueKey);

注意:如果您告诉我为什么-ve投票,将不胜感激?

标签: javascriptecmascript-6

解决方案


您可以使用array#reducewithObject.keys()查找最大值键并将其存储在数组中。

let maxValueKey = (o) => Object.keys(o).reduce((a, k, i, keys) => {
  if (!i || a.value < o [k]) {
    a.max.length = 0;
    a.max.push(k);
    a.value = o[k];
  } else if (a.value === o[k]) {
    a.max.push(k);
  }
  
  if (a.max.length === keys.length) {
    a.max.length = 0;
    a.value = 'All equal';
  }
  
  return a;
}, {max : [], value: undefined});
console.log(maxValueKey({ a: 4, b: 4, c:2, d:1 }));
console.log(maxValueKey({ a: 1, b:1, c:1, d:1 }));
console.log(maxValueKey({ a: 2, b:1, c:4, d:1 }));
console.log(maxValueKey({ a: 2, b:1 }));


推荐阅读