javascript 不理解JS中的.forEach函数

toe95027  于 2023-08-02  发布在  Java
关注(0)|答案(3)|浏览(78)

我知道这是一个愚蠢的问题,但我不明白为什么fruits.forEach(fruit => console.log(I want to eat a ${fruit}.))在括号内的功能是'水果',而不是'水果'?
我也不明白.forEach方法数组中的回调函数是如何工作的,如果能解释一下,那将非常有帮助。

v9tzhpje

v9tzhpje1#

forEach()方法是一种迭代方法。它会针对数组中的每个元素,以递增索引顺序呼叫一次提供的callbackFn函式。与map()不同,forEach()始终返回undefined且不可链接。典型的用例是在链的末尾执行副作用。
callbackFn仅对已赋值的数组索引调用。对于稀疏数组中的空插槽,不会调用它。
forEach()不会变更呼叫它的数组,但提供为callbackFn的函数可以。但是,请注意,数组的长度是在第一次叫用callbackFn之前储存的。因此:
callbackFn将不会访问在调用forEach()开始时添加到数组初始长度之外的任何元素。对已访问过的索引所做的更改不会导致对这些索引再次调用callbackFn。如果callbackFn更改了数组中尚未访问过的现有元素,则传递给callbackFn的该元素的值将是访问该元素时的值。不会访问已删除的图元。

fruits.forEach(fruit => {
console.log(fruit)
})

字符串
详细访问:Moz Dev Link

klh5stk1

klh5stk12#

fruits.forEach(fruit => console.log(I want to eat a ${fruit}.))

字符串
让我们把它分解一下,以便更好地理解它,这里我们有一个水果列表,我们正在迭代/循环它,并对其中的每个项目执行一些操作。
正如你所注意到的,我们使用了一个lambda函数,它对每个列表项都做了一些事情

let myFunction = fruit => console.log(I want to eat a ${fruit}.);


该函数独立于循环构造。它只是对一个给定的项目做一些事情,在你的例子中是一个水果

6tr1vspr

6tr1vspr3#

回调函数是一个带有单个参数的箭头函数,该参数表示迭代期间数组的当前元素。在本例中,fruits数组中的每个元素都是一个表示水果名称的字符串,这就是为什么回调函数的参数名为fruit。
当forEach方法遍历fruits数组时,它为每个元素调用回调函数,将当前元素(即fruit名称)作为参数传递给回调函数。在回调函数内部,它使用字符串插值(反引号和${})来创建消息,然后使用console.log()将消息记录到控制台。
所以,总而言之,回调函数用于指定在迭代期间应该对数组的每个元素执行什么操作,回调函数的参数表示正在处理的当前元素。在本例中,它被命名为fruit,因为它表示fruits数组中的单个fruit名称。

相关问题