例:
hash = {'Apple':2, 'Orange' :1 , 'Mango' : 2}
这里最大的键是Apple和Mango。我该如何编写一个同时给Apple和Mango作为答案的函数。
我尝试过这样的事情:
Object.keys(hash).reduce(function(a, b){ return hash[a] > hash[b] ? a : b });
但这仅给苹果提供了答案。
您可以先将最大值作为单独的运算来计算,然后进行过滤:
const hash = {Apple: 2, Orange: 1, Mango: 2};
const max = Object.keys(hash).reduce((a, v) => Math.max(a, hash[v]), -Infinity);
const result = Object.keys(hash).filter(v => hash[v] === max);
console.log(result);
简单易懂,但需要额外的迭代,因此它不是最有效的实现。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句