如何在对象数组中获得最大值的索引
How to get index of the max value in array of objects?
我有一个数组,格式如下:
var dataset = [{
date: '1',
value: '55'
}, {
date: '2',
value: '52'
}, {
date: '3',
value: '47'
}];
我通过
得到它的最大值var maxValue = Math.max.apply(Math, dataset.map(function(o) {
return o.value;
}));
效果很好,没什么好担心的。但是我怎样才能获得maxValue的索引呢?
我试过indexOf()(它一直返回我-1),jQuery inArray()以及reduce(),但它们都不能正常工作。
我想有一种更简洁的方法,通过迭代所有元素来获得索引。
作为Array.forEach
的替代品
var dataset = [{date:'1',value:'55'},{date:'2',value:'56'},{date:'3',value:'47'}],
max = -Infinity,
key;
dataset.forEach(function (v, k) {
if (max < +v.value) {
max = +v.value;
key = k;
}
});
console.log(key);
console.log(dataset[key]);
您可以使用Array.mp()
创建的temp数组来查找像
var dataset = [{
date: '1',
value: '55'
}, {
date: '2',
value: '59'
}, {
date: '3',
value: '47'
}];
var tmp = dataset.map(function(o) {
return o.value;
});
var maxValue = Math.max.apply(Math, tmp);
//find the index using the tmp array, need to convert maxValue to a string since value is of type string
var index = tmp.indexOf(maxValue + '');
snippet.log(maxValue + ' : ' + index)
<!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
相关文章:
- 在Javascript数组中查找绝对最大值
- Html5输入属性的默认值,如最小值、最大值、大小等
- 按最大值获取数组索引
- 识别滑块范围的最小值和最大值
- 如何在最大值之前的某个点停止范围滑块
- 访问Highcharts系列的最小/最大值:afterSetExtremes不会激发
- 如何在拖动后获得图表的最小值和最大值放大高图表
- AngularJs:在数字输入字段中设置验证的条件最小值和最大值
- HTML5范围滑块最小值和最大值
- 如何仅在存在最小值和最大值时才显示错误消息
- 在 JavaScript 事件中添加最小值和最大值
- 从 JavaScript 中的数组中获取最大值和最小值
- 获取整数对象属性名称的最小值和最大值
- 高图表 - 在缩放重置中设置最大值和最小值
- Java 脚本 设置日期的最小值和最大值属性
- 返回数组中最大值的索引
- 返回数组中最大值的索引
- javascript for循环中最大的索引值
- 如何在对象数组中获得最大值的索引
- 我怎么能找到一个数组的最大值的所有索引在javascript