我有一个示例数组:
var arr = [10, 67, 100, 100];
我想找到数组中最大值的索引。
这个函数只找到一个索引:
function max(arr) {
var max = arr[0];
var maxIndex = 0;
for (var i = 1; i < arr.length; i++) {
if (arr[i] > max) {
maxIndex = i;
max = arr[i];
}
}
return maxIndex;
}
Run Code Online (Sandbox Code Playgroud)
如何修改它以返回最大索引数组?在上面的示例数组中,它应该返回
[2, 3].
您需要跟踪所有索引,而不是仅跟踪一个索引。尝试一下:
function max(arr) {
var max = -Infinity;
var maxIndices = [];
for (var i = 0; i < arr.length; i++) {
if (arr[i] === max) {
maxIndices.push(i);
} else if (arr[i] > max) {
maxIndices = [i];
max = arr[i];
}
}
return maxIndices;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2730 次 |
| 最近记录: |