javascript - 按最大值获取数组索引?

标签 javascript arrays

这个问题在这里已经有了答案:





Return index of greatest value in an array

(13 个答案)



Find the min/max element of an array in JavaScript

(56 个回答)


7年前关闭。




我找到了一些解决方案来获取索引的最大值,但是当我有这样的数组时如何获取最大值:

myArray = [];
myArray[1] = 10;
myArray[2] = 99;

alert(Math.max(myArray));

我想获得最大值的索引。在这种情况下,它将是值为 99 的索引 2。

我现在得到的结果是NaN.alert(Math.max(myArray));

最佳答案

1. 如果只想要第一个实例:

var arrayMaxIndex = function(array) {
  return array.indexOf(Math.max.apply(null, array));
};

console.log(arrayMaxIndex([1,2,7,2])); //outputs 2
2. 如果你想要所有出现的最大值:
function getAllIndexes(arr, val) {
    var indexes = [], i = -1;
    while ((i = arr.indexOf(val, i+1)) != -1){
        indexes.push(i);
    }
    return indexes;
}

var arrayAllMaxIndexes = function(array){
    return getAllIndexes(array, Math.max.apply(null, array));
}

console.log(arrayAllMaxIndexes([1,2,7,2,7])); // outputs [2,4]
每个人都进行 ES6 更新,所以这是我的:
const arr = [1, 2, 3];
const max = Math.max.apply(Math, arr.map((i) => i));
const maxIndex = arr.indexOf(max);
你也可以使用 reduce 来达到同样的效果:
const getMax = (arr) => arr.reduce((acc, item) => (item > acc ? item : acc), arr[0]);

关于javascript - 按最大值获取数组索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29493455/

相关文章:

javascript - 在 php 的动态下拉列表中使用 ajax 时未找到

ios - 解码某些 Base64 字符串时出错,但不解码其他字符串

java - 从 txt 文件中读取整数并存储到数组中

arrays - 在数组 golang 中连接整数 - GoLang

php - 将 PHP 数组字符串转换为数组

javascript - 使用 require.js 进行跨域调用时出现问题?

javascript - 更改 ul 列表中的 react 链接

javascript - 获取 daterangepicker bootstrap 的值

ruby - 在 Ruby 中从 stdin 读取并打印到 stdout

javascript - 在javascript中传递一个函数