首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >以下JavaScript函数有什么作用?

以下JavaScript函数有什么作用?
EN

Stack Overflow用户
提问于 2018-08-24 01:18:09
回答 2查看 0关注 0票数 0

代码段:

代码语言:javascript
复制
function fun(x, y, callback) { 
    a = y 
    for (let i = 0; i < x.length; i++) { 
        a = callback(a, x[i]) 
    } 
    return a 
}

上面的方法有什么作用?

EN

回答 2

Stack Overflow用户

发布于 2018-08-24 10:02:04

l是一个Arrays可以是任何东西,并且callbackfunction在函数内执行的。

代码语言:javascript
复制
 function operate(l, s, callback) { 
   a = s //should be var a = s
  for (let i = 0; i < l.length; i++) { 
    a = callback(a, l[i]) 
  } 
 return a 
 }

a=s;这将变量的值赋给s变量a

for循环调用回调function对的每个成员Array l和分配功能的返回值a

最后,a归还。函数的返回值取决于callback function给定的函数,因为它的返回值是afor循环中赋值的。

样品:

代码语言:javascript
复制
<script>
function operate(l, s, callback) { 
       a = s 
      for (let i = 0; i < l.length; i++) { 
        a = callback(a, l[i]) 
      } 
     return a 
 }
 var array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
 //returns the arithmetic sum of the numbers from 1 to 10 (1+2+3...+10)
 console.log(operate(array, 0, function(a, b){
   return a+b;
 }));
</script>
票数 0
EN

Stack Overflow用户

发布于 2018-08-24 10:35:15

代码语言:javascript
复制
function operate(l, s, callback)

这里的功能行定义了函数及其参数。函数的名称是operate,与3个参数lscallback

在这种情况下,l预期是一个数组,s如果l在其数组中没有项,则是默认返回值,并且callback是在函数内调用的operate函数。

代码语言:javascript
复制
a = s

首先,我们将变量默认返回到我们传入的s参数作为参数。如果我们不进入循环(如果l数组为空),则只返回。

代码语言:javascript
复制
for (let i = 0; i < l.length; i++)

在这里,我们正在进行for循环。它有3个部分用于本声明。我们将一个新变量设置i为0,然后检查一个i小于的布尔值(true或false),即l.length多少项l,然后在每个循环上,将i变量增加1(0更改为1,1改为2等)。

代码语言:javascript
复制
a = callback(a, l[i])

在这里,我们做了两件事。首先,我们正在执行callback作为参数传入的函数operate。这个函数应该接受两个参数,我们传递的值是a,我们传入的值s,或者前面的callback返回值,以及l[i]我们在l数组中的当前项。我们使用i变量来获取每个循环中的值,每个循环增加1。然后我们将a变量设置为返回值,callback以便我们可以将它用于下一个循环,或者返回它。

代码语言:javascript
复制
return a

该行将简单地将operate函数的返回值设置为当前值a

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100002392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档