javascript - 在javascript中查找导致从键/值对中绘制的最大值持有键
问题描述
我很想知道一种打印key
具有最大值的方法。下面是几个条件,
- 如果我们在所有键中都有最大值,则返回该值。示例:return
c
及其值4
来自{a: 2, b:1, c:4, d:1}
- 如果我们有两个键具有相同的值并且它们是最大值,则返回它们的值。示例:返回
a
和b
值4
来自{ a: 4, b: 4, c:2, d:1 }
- 在上述条件下,顺序应该是
a
thenc
。 - 如果所有键都具有相同的值,则返回 false 或零或除一以外的其他值。例子:
{a: 1, b:1, c:1, d:1}
代码块:
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
投票,将不胜感激?
解决方案
您可以使用array#reduce
withObject.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 }));
推荐阅读
- c++ - 如何使用 AVPacket 作为局部变量(或所说的临时变量)
- php - PHP PDO 如何使用 URL 从数据库中获取 ID
- javascript - 如何从 Vue Web 应用程序中的 Firebase 存储下载文件?
- django - 如果用户无权查看实例,则回复 Not Found
- go - Golang:在特定情况下评估函数的最佳方法
- javascript - 包含函数变量的数组
- visual-studio-code - Visual Studio Code 中的 Dist 文件夹
- c# - 将所有 System.Text.Json dll 嵌入到最终的 exe
- typescript - Typescript 和 web3 批处理请求
- ruby-on-rails - 如何在 Rails 6 系统测试水豚上获取浏览器控制台