在 TypeScript 中获取数字数组的总和
Get the Sum of an Array of Numbers in TypeScript
要获取数字数组的总和:
- 使用
reduce()
方法遍历数组 - 在每次迭代中,用当前值递增累加和。
- 结果将是数组中所有数字的总和。
索引.ts
const arr: number[] = [10, 20, 50]; const result = arr.reduce((accumulator, current) => { return accumulator + current; }, 0); console.log(result); // 👉️ 80
我们传递给
Array.reduce
方法的函数会被数组中的每个元素(数字)调用。
该
accumulator
参数的初始值为0
,因为这是我们作为第二个参数提供给该方法的值。 reduce
accumulator
在每次迭代中,我们都会用数组的当前值递增,直到计算出总数。
该reduce()
方法返回数组中所有数字的总和。
您可能还会看到显式设置方法的accumulator
类型和返回类型的示例reduce()
。
索引.ts
const arr: number[] = [10, 20, 50]; // 👇️ using <number> generic to set return type const result = arr.reduce<number>((accumulator, current) => { return accumulator + current; }, 0); console.log(result); // 👉️ 80
上面的示例使用
泛型
显式设置accumulator
变量的类型和reduce()
方法的返回类型。
但是,在这种情况下它可以省略,因为 TypeScript 能够根据提供的默认值推断它。
另一种可能更简单的方法是使用该forEach
方法。
要获取数字数组的总和:
- 使用关键字初始化
sum
变量并将其设置为.let
0
- 调用
forEach()
方法迭代数组。 sum
在每次迭代中,用当前数字递增变量。
索引.ts
const arr: number[] = [10, 20, 50]; let sum = 0; arr.forEach((element) => { sum += element; }); console.log(sum); // 👉️ 80
我们传递给
Array.forEach
方法的函数会针对数组中的每个元素进行调用。
请注意,我们使用关键字声明
sum
变量。我们不能重新分配使用声明的变量。 let
const
在循环的每次迭代中,我们增加存储在sum
变量中的值以获得总量。
这种方法更具可读性和直观性,尤其是当您不习惯该reduce
方法的工作方式时。