Javascript 在索引数组中查找最大值

Javascript 在索引数组中查找最大值,javascript,arrays,Javascript,Arrays,我必须找到数组的最大值并返回其索引位置 这是我的代码片段: function findGreaterNumbers(array) { for(var i = 1; i < array.length; i++) { if(array[i].length !== 0) { var result = Math.max.apply(null, [i]); } else { return 0; }

我必须找到数组的最大值并返回其索引位置

这是我的代码片段:

function findGreaterNumbers(array) {
    for(var i = 1; i < array.length; i++) {
        if(array[i].length !== 0) {
            var result = Math.max.apply(null, [i]);
        } else {
            return 0;
        }
    }
    return result;
}
console.log(findGreaterNumbers([1, 2, 3]);        // 2: I want 3
console.log(findGreaterNumbers([6, 1, 2, 7]));    // 3: I want 4
console.log(findGreaterNumbers([5, 4, 3, 2, 1])); // 4: I want 0
console.log(findGreaterNumbers([]));              // undefined: I want 0 
函数findCreaterNumber(数组){
对于(变量i=1;i
const输入=[1,5,3,4,0,-1];
函数getMaxIndex(){
const max=数学最大值(…输入);
返回input.findIndex((item)=>item==max);
}
console.log(getMaxIndex())
试试这个方法

function findGreaterNumbers(arr) {
    let count = 0;
    for (let i = 0; i < arr.length - 1; i++) {
        for (let j = i + 1; j < arr.length; j++) {
            if (arr[i] < arr[j]) {
                count ++;
            }
        }
    }
    return count;
}

findGreaterNumbers([1,2,3]) // 3
findGreaterNumbers([6,1,2,7]) // 4
findGreaterNumbers([5,4,3,2,1]) // 0
findGreaterNumbers([]) // 0
函数findCreaterNumber(arr){
让计数=0;
for(设i=0;i
尝试做一些简单的事情,比如:

函数findCreaterNumber(数组){
设max=array[0];//将最大值初始化为第一个元素
forEach((value)=>{//fancier for循环遍历
//数组,**值**是
//成员
如果(值>最大值){
最大值=最大值;
}
});//在forEach之后,max将具有最大值
return array.indexOf(max);//返回max的索引

}
另一种方法是通过
Math.max
查找最大数,并从
Array.indexOf

var数字=[0,1,3,2,5,10,4,6];
var max=Math.max(…数字)
var索引=数字。indexOf(最大值)

console.log('Index of max',Index)
您可以执行以下操作:

const findMax = (arr) => {
    const max = Math.max.apply(Math, arr);
    return arr.indexOf(max);
}
首先,您创建一个函数来接收数组
arr
,然后在此函数中使用JS内置方法找到具有最高值的数组元素。如果返回此值,将显示您提供的数组中数字的最大值


为了返回索引,您可以使用array方法查找其索引。您返回此值,就得到了一个数组中最大数的索引。

我将使用内置的和非常有用的数组方法。
map
将一个数组转换为另一个长度相同的数组,而
reduce
可以用于对数组本身进行任何聚合。查找最低/最高值只是一种特殊类型的聚合

也就是说,以下方法将为您提供与最大值对应的所有指数:

函数iMax(数组){
返回数组.reduce((m,d,i)=>{
返回值(m.length==0 | | d>m[0].d)
?[{d:d,i:i}]
:(d==m[0].d?m.concat({d:d,i:i}):m)
}, [])
.map(d=>d.i);
}
//运行测试
log(JSON.stringify([1,2,3])+“=>”+JSON.stringify(iMax([1,2,3]));
log(JSON.stringify([6,1,2,7])+“=>”+JSON.stringify(iMax([6,1,2,7]));
log(JSON.stringify([5,4,3,2,1])+“=>”+JSON.stringify(iMax([5,4,3,2,1]));
log(JSON.stringify([5,4,3,5,2,1])+“=>”+JSON.stringify(iMax([5,4,3,5,2,1]));

console.log(JSON.stringify([])+“=>”+JSON.stringify(iMax([]));
调用
Math.max.apply()有什么意义
只包含一个元素的数组?为什么你在Math.max方法中通过了数学论证我认为应该有一个空值谢谢你,我在第二个bcoz中就得到了你的方法我只是这个开发世界的初学者,我不知道所有的方法和函数我的缺点,让我添加一些注释让你更容易:)非常感谢,这需要时间进入我的头脑,但我以后肯定会采用这种方法。我刚开始学习编程只有两周时间,我不理解高级主题,但再次感谢你为我提供了很好的解决方法