我坚持为什么我的Javascript findMaxObjectValue函数不起作用。以下是我的想法:
function findMaxObjectValue(obj) {
return Object.keys(obj).reduce(function(a, b) {
return (obj.a > obj.b) ? a : b;
}, obj[a]);
}
当我运行时:
findMaxObjectValue([{Alex: 1}, {Katie: 2}, {Nora: 3}, {Dana: 4}])
当我希望'3'
时,它会返回'4'
...所有帮助都很感激!
答案 0 :(得分:1)
这是因为你减少了键而不是值。它正在比较Alex,Katie,Nora和Dana。 Nora按字典顺序排在最后,所以答案就是这样。
如果要按值1,2,3,4排序,则使用values()方法,而不是keys()方法。
答案 1 :(得分:0)
使用Object.values
代替Object.keys
function findMaxObjectValue(obj) {
var objLargestVal = Object.values(obj).reduce(function(a, b) {
return (obj[a] > obj[b]) ? a : b;
});
for (var keys in objLargestVal) {
return objLargestVal[keys]
}
}
console.log(findMaxObjectValue([{
Alex: 1
}, {
Katie: 2
}, {
Nora: 3
}, {
Dana: 4
}]))