问题描述
我正在研究一个函数,该函数返回数字数组中的最小值(或最大值)值。 看起来下面这个 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));