Get array index by Max value?
本问题已经有最佳答案,请猛点这里访问。
我找到了一些获取索引最大值的解决方案,但是当我拥有这样的数组时如何获得最大值:
1 2 3 4 5 | myArray = []; myArray[1] = 10; myArray[2] = 99; alert(Math.max(myArray)); |
我想获取最大值的索引。 在这种情况下,它将是值为99的索引2。
我现在得到的结果是
1.如果只需要第一个实例:
1 2 3 4 5 | var arrayMaxIndex = function(array) { return array.indexOf(Math.max.apply(null, array)); }; console.log(arrayMaxIndex([1,2,7,2])); //outputs 2 |
2.如果您希望所有出现的最大值:
1 2 3 4 5 6 7 8 9 10 11 12 13 | 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] |