什么是读取对象数组的所有元素的属性的更优雅方式

时间:2014-05-23 15:01:43

标签: javascript jquery arrays

var data = [{"speed": 210},{"speed": 50},{"speed": 160}];

我想从data获得最高速度,所以我正在执行以下操作:

var max = Math.max(data[0]['speed'], data[1]['speed'], data[2]['speed']);

这既不优雅也不可扩展(假设数组中可能有任意数量的对象)。

注意:我已经在页面上标记了jQuery(即如果你可以建议聪明地使用.grep或者 可以使用的东西 - 尽管我已经假设了这太过分了?)。

1 个答案:

答案 0 :(得分:11)

您可以将对象speed属性映射到数组中,然后将Math.maxapply()一起使用以获取最大数字

Math.max.apply( null, data.map(function(x) {return x.speed}) );

FIDDLE