gpt4 book ai didi

javascript - 数组的 .reduce 方法

转载 作者:行者123 更新时间:2023-11-28 18:31:15 24 4
gpt4 key购买 nike

您好,这里是 w3 学校使用数​​组归约方法的一些代码。我正在尝试学习如何使用它,但是我有点困惑为什么这段代码甚至可以工作。原因是 numbers.reduce(getSum) 在 getSum 函数中没有接受参数。如果我们甚至不向 getSum 函数提供参数,我们的代码如何知道数组中有多少内容以及如何对它们求和。在 w3schools 上,它显示 array.reduce(function(total,currentValue,currentIndex,arr),initialValue),并且还表示 Total 和 currentValue 是必需的。但我们这里根本就没有它们,不是吗?我们只是有我们的功能!请帮忙

<!DOCTYPE html>
<html>
<body>

<p>Click the button to get the sum of the numbers in the array.</p>
<button onclick="myFunction()">Try it</button>

<p>Sum of numbers in array: <span id="demo"></span></p>

<script>
var numbers = [65, 44, 12, 4];

function getSum(total, num) {
return total + num;
}
function myFunction(item) {
document.getElementById("demo").innerHTML = numbers.reduce(getSum);
}
</script>

</body>
</html>

这是另一个例子..不确定有什么区别

var numbers = [15.5, 2.3, 1.1, 4.7];

function getSum(total, num) {
return total + Math.round(num);
}
function myFunction(item) {
document.getElementById("demo").innerHTML = numbers.reduce(getSum,0);
}

最佳答案

在函数getSum中,有两个参数,totalnum,它们相当于totalcurrentValue 分别在您的 w3 学校示例中。在 javascript 中,您的函数不必在函数中具有相同的变量名称。传递给 reduce 的函数需要两个参数,第一个参数将用作“运行总计”,第二个参数将用作“当前值”。

至于问题,它怎么知道数组里面有多少个值呢,看一下MDN提供的polyfill 。它提供了一些关于如何为数组实现reduce函数以及了解数组有多长的见解。

关于javascript - 数组的 .reduce 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37968766/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com