微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将 for 循环变成 forEach将任何数字数组作为参数传递

如何解决将 for 循环变成 forEach将任何数字数组作为参数传递

我正在研究一个函数,该函数返回数字数组中的最小值(或最大值)值。 看起来下面这个 forLoop 工作正常:

const myNumbersAr = [-1300,120,12,-2000,-58]
const mySecondAr = [-100,200,-300,400,500]

var findMinNumber = function (oneArray) {
    var minNumber = oneArray[0]
    for (i = 0; i < oneArray.length; i++) {       
        if (oneArray[i] < minNumber) {
        minNumber = oneArray[i]     
        } 
    } 
    console.log(minNumber)
}

findMinNumber(myNumbersAr) // returns -2000
findMinNumber(mySecondAr) // returns -300

但是因为我正在练习,所以我想把它变成一个forEach。但我不明白。这是我尝试的:

var findMinNumber = function (someArray) {
    var minNumber = someArray[0];
    someArray.forEach(function (someArray) {
        
        if (someArray[i] < minNumber) {
            
            minNumber = someArray[i]
        
        }
        
    })
   console.log(minNumber)
}

findMinNumber(myNumbersAr) // returns always myNumbersAr[0] position.

我知道将参数传递了两次 (someArray) ,听起来不太对,所以我想我应该以不同的方式对其进行排序?

解决方法

改为:

var findMinNumber = function (someArray) {
var minNumber = someArray[0];
someArray.forEach(function (someItem) {
    if (someItem < minNumber) {
        minNumber = someItem
    }
})
return minNumber;
}
const myNumbersAr = [-100,200,-300,400,500]
console.log(findMinNumber(myNumbersAr));

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。