【问题标题】:Can you explain me the JS code ? How its working?你能解释一下 JS 代码吗?它是如何工作的?
【发布时间】:2023-01-12 16:44:25
【问题描述】:
console.log([1 , 2, 3 , 4 , 5].map((acc = 0 , num => acc += num)));
// output : [1, 3, 6, 10, 15]

我知道此处已将闭包应用于此代码,但不知道它是如何逐步工作的。我想想象一下。

我们知道地图有这个签名,

array.map(function(currentValue, index, arr), thisValue)

通过这个你能解释一下上面的代码吗?

【问题讨论】:

  • 这仅在您未处于严格模式或已在某处声明 acc 时有效。这是使用grouping operator,结合comma operator,首先将一个值赋给acc,然后将回调传递给map
  • @pilchard 它的工作好朋友。请再次检查jsfiddle.net/peyv13un
  • @pilchard 你错了,这是使用 comma operator 的有效 javascript
  • @Samathingamajig 我详细阐述了我的声明。在严格模式下无效

标签: javascript node.js arrays closures


【解决方案1】:

Map 遍历数组中的每个元素,变量 acc 设置为 0(累加器),每次返回 acc + num(数组的相应元素)。

acc = 0
num = 1
returns 1
acc = 1
num = 2
returns 3
acc = 3
num = 3 
returns 6

等等

【讨论】:

    猜你喜欢
    • 2017-03-19
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 2021-10-27
    • 1970-01-01
    • 2011-02-16
    相关资源
    最近更新 更多