javascript – 查找子对象的最大值

javascript中查找子对象的最大值的优雅方法是什么?

例:

找到此对象的最大数量值(此处显示为json):

{"density":[
  {"price":1.22837,"quantity":48201},{"price":1.39837,"quantity":28201},{"price":1.40107,"quantity":127011},{"price":1.5174,"quantity":75221},{"price":1.60600,"quantity":53271}
]}

谢谢你的建议!

PS:只是为了澄清:当然我可以循环,但我认为会有更优雅的方式……

解决方法

有这个Array原型的reduce方法
var arr = JSON.parse(objstring)["density"];
var max = arr.reduce(function(a,b) {
   return Math.max(a,b.quantity);
},0);

另一种解决方案就是这样

var max = Math.max.apply(null,arr.map(function(item){
   return item["quantity"];
}));

对于更“优雅”的方式,有功能库提供了getter工厂函数和更多的Array方法.有这样一个库的解决方案可能看起来像

var max = arr.get("quantity").max();

这将与上面的完全相同,但更好地表达.

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...