使用 JavaScript 計算每個子陣列中第一和第二個元素之間的差值,並返回這些差值的總和


在給定的問題陳述中,我們被要求分別計算每個子陣列中第一和第二個元素之間的差值,並且我們必須藉助 JavaScript 功能返回這些差值的總和。在陣列資料結構中,我們可以定義一個數組,該陣列也可以包含子陣列。

什麼是 JavaScript 中的子陣列陣列?

讓我們瞭解一下 JavaScript 中列表的工作原理。

在 JavaScript 中,我們可以定義子陣列陣列或巢狀陣列。子陣列陣列是一個數組,其中包含一個或多個數組作為其元素。主陣列中的每個陣列項都是一個子陣列,這也可以稱為巢狀陣列。所以讓我們透過示例來理解

const array = [[1,2,3], [4,5,6], [7,8,9]];

在上面的例子中,一個數組是一個子陣列陣列。每個子陣列包含 2 個元素。

我們還可以使用子陣列的索引和子陣列內元素的索引來訪問子陣列的單個專案。例如:要訪問第二個子陣列中的值 4,我們可以使用以下程式碼

console.log(array[1][1]);

輸出

4

我們還可以使用 map、reduce、forEach 等陣列方法來迭代子陣列的元素。子陣列陣列基本上用於程式設計中表示和操作二維資料,例如矩陣和表格。

上述問題的邏輯

在 JavaScript 中計算子陣列元素差值最簡單的方法是使用 reduce 方法和元素索引。

所以讓我們瞭解一下給定問題的邏輯。為了計算子陣列的第一和第二個元素之間的差值,我們將宣告一個變數來儲存差值的總和。之後,我們將使用 for 迴圈遍歷每個子陣列。然後,我們將使用每個專案的索引計算其第二個和第一個元素之間的差值。最後,我們將使用算術運算子新增每個子陣列的差值。

演算法

步驟 1 − 宣告一個名為 arr 的陣列,其中包含整數元素的子陣列。

步驟 2 − 宣告子陣列平均值的最終總和。

步驟 3 − 此步驟將透過獲取其索引值來計算每個子陣列的第二個和第一個元素之間的差值。

步驟 4 − 現在轉到第三步,在此步驟中新增所有子陣列的平均值。

步驟 5 − 現在將輸出顯示為子陣列平均值的總和。

演算法示例

// define array of subarrays 
const arr = [[1, 3], [7, 9], [11, 5]]; 

//calculate difference and their sum
const sum = arr.reduce((acc, subArr) => {  
  const diff = subArr[1] - subArr[0];  
  return acc + diff; 
}, 0);

console.log("The sum of the differences of subarrays: ");
console.log(sum);

使用 for 迴圈的示例

// define array of subarrays 
const arr = [[1, 3], [7, 9], [11, 5]];
let sum = 0;

//calculate difference and their sum
for (let i = 0; i < arr.length; i++) {
  const subArr = arr[i];
  const diff = subArr[1] - subArr[0];
  sum += diff;
}
console.log("The sum of the differences of subarrays: ");
console.log(sum);

輸出

The sum of the differences of subarrays:
-2

時間複雜度

我們實現的程式碼具有 O(n) 的時間複雜度,其中 n 表示輸入陣列 arr 中的子陣列數量。這種時間複雜度的原因為我們只迭代每個子陣列一次,並在每個子陣列上執行相同的工作。我們使用一個數組 arr 來儲存輸入和用於平均值總和以及 reduce() 回撥函式中中間變數的固定記憶體量,因此整體空間複雜度也將為 O(n)。

結論

最後,這段程式碼使用 reduce 方法計算子陣列陣列中每個子陣列的第一和第二個元素之間的差值的總和。這是在 JavaScript 中解決此問題的有效且簡單的方法。就時間和空間複雜度而言,數量為 O(n)。

更新於:2023年8月22日

284 次檢視

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.