JavaScript 中使用預設值將陣列對映到新陣列


在給定的問題陳述中,我們需要藉助 JavaScript 功能將陣列對映到一個具有預設值的新陣列。在 JavaScript 中,我們有一些內建函式可以根據條件和需求將陣列對映到新陣列。

什麼是 JavaScript 中的陣列?

陣列是在一個屋簷下收集相似資料元素的集合。因此,讓我們瞭解 JavaScript 中陣列的整體工作過程。陣列是一個包含一個或多個元素的物件。

示例

const arr = ['A', 'B', 'C', 'D'];

console.log(arr);

輸出

[ 'A', 'B', 'C', 'D' ]

什麼是陣列的對映?

簡單來說,陣列的對映就是利用 JavaScript 中一些預定義的方法,使用輸入陣列的值建立一個新陣列。此過程稱為對映。在此過程中,每個陣列項都用於使用某些邏輯或函式在新建立的陣列中建立一個新項。

要對映陣列的所有元素,我們通常使用 map() 函式,它是 JavaScript 的一個函式。在整個過程中,原始陣列不會影響其大小或值。新陣列的長度也與輸入陣列相同。

上述問題的邏輯

使用 JavaScript 的預定義函式操作給定字串的最簡單方法。

因此,讓我們檢查給定問題陳述的邏輯。術語“使用輸入陣列的預設值將陣列對映到新陣列”,我們將使用 map 函式。在 map 函式內部,我們將提供一些邏輯來建立新陣列的項。map 函式將迭代輸入陣列的每個元素,並在進行函式內提供的某些計算時執行新項。建立新項後,我們將每個項推送到新陣列,最後我們將返回新陣列的值。

例如,如果我們有一些整數的陣列,並且我們希望為給定的 null 或 undefined 項設定預設值 0。

示例

const digits = [1, 2, null, 3, undefined, 4];
const defaultValues = (num) => num || 0;
const newArray = digits.map(defaultValues);
console.log(newArray);

輸出

[1, 2, 0, 3, 0, 4]

演算法

步驟 1:由於我們知道需要將一個數組對映到另一個數組或建立一個新陣列,因此我們將需要定義陣列才能執行此過程。arr1 和 arr2

步驟 2:現在我們必須使用前一個數組的元素來建立一個新陣列。因此,我們正在使用回撥函式 Array.from 來解決上述問題陳述。透過將每個專案乘以 2,此函式將獲取 arr1 並計算新專案。

步驟 3:非常類似於上述步驟,我們將看到指南功能的利用。透過獲取輸入陣列中元素的平方根,此函式將遍歷每個專案並計算新陣列中的專案。

步驟 4:在最後一個示例中使用了“from”方法,它建立一個具有 0 值且長度為 5 的新陣列。

示例

// define arrays arr1 and arr2 for checking different methods
const arr1 = [1, 2, 3];
const arr2 = [4, 9, 16, 25];

const newarr1 = Array.from(arr1, x => x * 2);
console.log(newarr1);


const newarr2 = arr2.map(Math.sqrt);
console.log(newarr2);

const arr3 = Array.from({length: 5}, () => 0);
console.log(arr3);

輸出

[ 2, 4, 6 ]
[ 2, 3, 4, 5 ]
[ 0, 0, 0, 0, 0 ]

複雜度

正如我們所看到的,透過輸入陣列的預設值將陣列對映到新陣列的不同技術。所有方法和技術都需要 O(n) 時間才能完成執行併產生所需的結果。

結論

在此程式碼中,我們使用 JavaScript 的 map 函式實現了不同的對映技術。我們還看到,這些方法在處理較大的陣列物件時效率不高。最後計算所有方法的時間複雜度為 O(n),其中 n 是輸入陣列的大小。

更新於:2023-08-23

754 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告
© . All rights reserved.