JavaScript 如何创建累积和数组
本文将演示如何在JavaScript中创建一个包含每个索引处的累积和的数组,此数组由整数数组生成。
累积和 被定义为给定序列及其前面所有值在特定索引处的部分总和。它也被称为 运行总和 ,因为它不断地添加所有前面值的和。例如,考虑下面的数组:
Arr = [ 2, 7, 9, 4, 3 ]
每个索引处的累积和为:
0 : 2
1 : 2 + 7 = 9
2 : 2 + 7 + 9 = 18
3 : 2 + 7 + 9 + 4 = 22
4 : 2 + 7 + 9 + 4 + 3 = 25
因此,结果数组将会是:
Cumulative Sum = [ 2, 9, 18, 22, 25 ]
创建累积和数组的方法
可以通过以下方法来实现:
- Naive方法:使用JavaScript循环
- 使用JavaScript的array.map()方法
- 使用JavaScript的array.forEach()方法
- 使用JavaScript的array.reduce()方法
方法1:使用JavaScript循环
在JavaScript中循环 是一种使一组指令/函数在某个条件为真时反复执行的特性。
语法:
while(condition) {
// JavaScript code
}
示例: 在此示例中,我们将演示如何使用 JavaScript for 循环创建一个累积求和的数组。
Javascript
// Initialize input array
const arr = [2,7,9,4,3];
// Initialize required array with first value
let cumulativeSum = [arr[0]];
let i = 1;
// Used while loop to iterate and
// perform transformations
while (i < arr.length) {
cumulativeSum.push(arr[i] + cumulativeSum[i - 1]);
i++;
}
// Display Output
console.log(cumulativeSum);
输出
[ 2, 9, 18, 22, 25 ]
方法2:使用JavaScript的array.map()方法
JavaScript的 map() 方法通过在父数组中的每个元素上调用特定函数来创建一个数组。它用于迭代和执行数组上的迭代。
语法:
map((element) => { /* … */ })
示例: 在这个示例中,我们将看到如何使用JavaScript数组.map()方法创建一个具有累积和的数组。
JavaScript
// Create a new array
const arr = [1, 3, 5, 7, 9, 11];
// Variable to store sum
let sum = 0;
// Creating final array
let cumulativeSum = []
// Using map to perform transformations
arr.map((e)=>{
sum = sum + e;
cumulativeSum.push(sum);
})
// Display output
console.log(cumulativeSum);
输出
[ 1, 4, 9, 16, 25, 36 ]
方法3: 使用 JavaScript 的 array.forEach() 方法
array.forEach() 方法会针对数组的每个元素调用提供的函数。提供的函数可以对给定数组的元素进行任何操作。
语法:
array.forEach( callback( element, index, arr ), thisValue )
例子: 在这个例子中,我们将使用JavaScript的array.map()方法创建 累积求和数组 。
JavaScript
// Create an array
const arr = [1, 3, 5, 7, 9, 11];
// Create variable to store sum
let sum = 0;
// Create resulting array
let cumulativeSum = []
// Using forEach method to iterate
// and perform required operation
arr.forEach((e)=>{
sum = sum + e;
cumulativeSum.push(sum);
})
// Display the output
console.log(cumulativeSum);
输出
[ 1, 4, 9, 16, 25, 36 ]
方法4: 使用JavaScript的array.reduce()方法
在JavaScript中, arr.reduce() 方法用于将数组化简为一个值,并对数组的每个值(从左到右)执行提供的函数,函数的返回值存储在累加器中。
语法:
array.reduce( function(total, currentValue, currentIndex, arr), initialValue );
示例: 这个示例将演示如何使用JavaScript的array.reduce()方法创建一个累积和的数组。
Javascript
// Declare new array
const arr = [1, 3, 5, 7, 9, 11];
// Initialize cumulative array
let cumulativeSum = [];
// Callback function to execute in reduce method
function execute(sum,element){
sum = sum + element;
cumulativeSum.push(sum);
return sum
}
// Using array.reduce with the Callback function
arr.reduce(execute,0);
// Display output
console.log(cumulativeSum);
输出
[ 1, 4, 9, 16, 25, 36 ]