如何用一行优雅代码找出字典数组中key 'a'的最值?
一行代码获取数组对象中指定key的最大值和最小值
先看你给出的数组:
var array = [ {'a':3,'b':4}, {'a':1,'b':8}, {'a':9,'b':7} ]
可以通过数组映射+扩展运算符+Math方法的组合,用一行代码同时拿到a的最大值和最小值:
方案1:解构赋值同时获取两个值
const [minA, maxA] = [Math.min(...array.map(item => item.a)), Math.max(...array.map(item => item.a))];
方案2:单独获取最大值/最小值
如果不需要同时拿到,也可以分开写(依然是单行):
const maxA = Math.max(...array.map(item => item.a)); // 结果:9 const minA = Math.min(...array.map(item => item.a)); // 结果:1
原理说明
array.map(item => item.a)会将原数组转换为仅包含a属性值的新数组:[3, 1, 9]- 扩展运算符
...会把数组中的元素逐个展开,作为Math.max()和Math.min()的参数,这两个方法会直接返回参数中的最大/最小值
内容的提问来源于stack exchange,提问作者gotiredofcoding
相关产品推荐
相关产品推荐

