JavaScript 如何创建累积和数组

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 ]

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程