【发布时间】:2021-07-04 12:58:27
【问题描述】:
我正在开发一个函数,该函数返回数字数组中的最小值(或最大值)值。 看起来下面这个 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) ,听起来不对,所以我想我应该以不同的方式订购它?
【问题讨论】:
-
您需要
function (element),然后只需要element而不是someArray[i]。但我可以问为什么forEach而不是for of?for (let element of someArrary)的好处是return仍然可以满足您的期望,您仍然可以使用break和continue等 -
看examples of and documentation for
forEach。注意传递给回调的参数是什么。 -
@CherryDT 除此以外没有什么特别的原因,这是我迄今为止所学到的。我将一步一步地尝试练习我学到的每一个新元素。我只是在关注一个小程序,而且很胖,它只向我们展示了 forloops / while 和 forEach 作为迭代数组的一种方式。我想再往前走一点,当我对这些有了更多的了解时,我会转向 ´´´for of ´´´
-
@T.J.Crowder 我会的,谢谢!虽然我仍然缺乏很多知识来理解文档的某些部分。
标签: javascript arrays foreach