使用Array.prototype.map對JavaScript數組進行操作的十個例子

一、map的基本用法

Array.prototype.map()是JavaScript數組對象的一個原型方法,可以將一個數組映射成其他形式的數組。它接收一個函數作為參數,該函數將作用於原數組的每一個可枚舉元素,返回一個新的數組。

以下是一個基本的map用法示例:

const arr1 = [1, 2, 3, 4];
const arr2 = arr1.map((x) => x * 2);
console.log(arr2); // [2, 4, 6, 8]

在這個例子中,arr1數組的每個元素都乘以2,返回一個新的arr2數組。

二、將字符串數組轉換為數字數組

當我們需要將一個字符串數組轉換為數字數組時,可以使用map方法加上一元箭頭函數將每個字符串轉換為數字:

const strArr = ['1', '2', '3', '4'];
const numArr = strArr.map((x) => Number(x));
console.log(numArr); // [1, 2, 3, 4]

在這個例子中,將字符串數組轉換為數字數組時,箭頭函數的Number將每個字符串轉換為相應的數字。

三、將對象數組中的某個屬性提取到一個新的數組中

當我們需要將一個對象數組中的某個屬性提取到一個新的數組中時,可以使用map方法加上一元箭頭函數獲取該屬性:

const userArr = [
  { name: 'Mike', age: 30 },
  { name: 'Tom', age: 25 },
  { name: 'Jane', age: 35 },
];
const nameArr = userArr.map((x) => x.name);
console.log(nameArr); // ['Mike', 'Tom', 'Jane']

在這個例子中,將userArr數組中每個對象的name屬性提取出來放到新的nameArr數組中。

四、使用map實現過濾

當我們需要在數組中進行過濾時,可以結合map和filter方法實現。以下示例將數組中所有大於3的元素過濾掉:

const arr3 = [1, 2, 3, 4, 5];
const arr4 = arr3.map((x) => {
  if (x > 3) {
    return null;
  } else {
    return x;
  }
}).filter((x) => x !== null);
console.log(arr4); // [1, 2, 3]

在這個例子中,map方法結合if語句過濾掉大於3的元素,返回一個包含null元素的數組。filter方法再將null元素過濾掉,得到最終結果。

五、使用map實現數組元素的去重

當我們需要去掉數組中的重複元素時,可以利用map方法實現。以下示例去掉數組中的重複元素:

const arr5 = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4];
const arr6 = [...new Set(arr5.map((x) => x))];
console.log(arr6); // [1, 2, 3, 4]

在這個例子中,利用map方法將數組元素映射成可枚舉的set對象,再利用展開運算符和Set對象的特性去重。

六、使用map和join方法實現字符連接

當我們需要將數組元素連接成一個字符串時,可以結合map和join方法實現。以下示例將數組元素連接成以逗號分隔的字符串:

const arr7 = ['apple', 'banana', 'orange'];
const str1 = arr7.map((x) => x).join(',');
console.log(str1); // 'apple,banana,orange'

在這個例子中,利用map方法將數組元素映射為一個新的數組,再利用join方法將新數組中的元素以逗號分隔連接成一個字符串。

七、使用map和reduce方法實現數組元素的求和

當我們需要計算數組元素的和時,可以結合map和reduce方法實現。以下示例對數組元素進行求和:

const arr8 = [1, 2, 3, 4];
const sum = arr8.map((x) => x).reduce((a, b) => a+b);
console.log(sum); // 10

在這個例子中,利用map方法將數組元素映射為一個新的數組,再利用reduce方法對新數組元素求和。

八、使用map和reduce方法實現一維數組的轉置

當我們需要將一維數組轉置為二維數組時,可以結合map和reduce方法實現。以下示例將一維數組[1,2,3,4]轉置為二維數組[[1,2],[3,4]]:

const arr9 = [1, 2, 3, 4];
const size = 2;
const transposedArr = arr9.map((x, i) => i % size === 0 ? arr9.slice(i, i + size) : null )
                        .filter((x) => x != null);
console.log(transposedArr); // [[1, 2], [3, 4]]

在這個例子中,利用map方法和slice方法將一維數組映射為二維數組的可枚舉元素,再利用filter方法過濾null元素得到最終結果。

九、使用map實現數組元素的排列組合

當我們需要對數組元素進行排列組合時,可以利用map方法實現。以下示例將數組[1,2,3]的所有排列組合列出來:

const arr10 = [1, 2, 3];
const combArr = arr10.map((x) => arr10.map((y) => [x, y]))
                      .reduce((pre, cur) => pre.concat(cur))
                      .filter((x) => x[0] !== x[1]);
console.log(combArr); // [[1, 2], [1, 3], [2, 1], [2, 3], [3, 1], [3, 2]]

在這個例子中,利用map方法和嵌套map方法將數組元素進行組合,再利用reduce方法將組合結果合併為一個數組。最後再利用filter方法過濾掉自身重複元素得到最終結果。

十、使用map實現二維數組的轉置

當我們需要將二維數組轉置時,可以利用map方法實現。以下示例將二維數組[ [1,2], [3,4] ]轉置為[ [1,3], [2,4] ]:

const arr11 = [[1,2], [3,4]];
const transposedArr2 = arr11[0].map((x, i) => arr11.map((y) => y[i]));
console.log(transposedArr2); // [[1, 3], [2, 4]]

在這個例子中,利用map方法和嵌套map方法將二維數組進行轉置。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/275842.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-17 16:06
下一篇 2024-12-17 16:06

相關推薦

  • Python棧操作用法介紹

    如果你是一位Python開發工程師,那麼你必須掌握Python中的棧操作。在Python中,棧是一個容器,提供後進先出(LIFO)的原則。這篇文章將通過多個方面詳細地闡述Pytho…

    編程 2025-04-29
  • Python導入數組

    本文將為您詳細闡述Python導入數組的方法、優勢、適用場景等方面,並附上代碼示例。 一、numpy庫的使用 numpy是Python中一個強大的數學庫,其中提供了非常豐富的數學函…

    編程 2025-04-29
  • Python返回數組:一次性搞定多種數據類型

    Python是一種多用途的高級編程語言,具有高效性和易讀性的特點,因此被廣泛應用於數據科學、機器學習、Web開發、遊戲開發等各個領域。其中,Python返回數組也是一項非常強大的功…

    編程 2025-04-29
  • Python去掉數組的中括號

    在Python中,被中括號包裹的數據結構是列表,列表是Python中非常常見的數據類型之一。但是,有些時候我們需要將列表展開成一維的數組,並且去掉中括號。本文將為大家詳細介紹如何用…

    編程 2025-04-29
  • Python操作數組

    本文將從多個方面詳細介紹如何使用Python操作5個數組成的列表。 一、數組的定義 數組是一種用於存儲相同類型數據的數據結構。Python中的數組是通過列表來實現的,列表中可以存放…

    編程 2025-04-29
  • Python操作MySQL

    本文將從以下幾個方面對Python操作MySQL進行詳細闡述: 一、連接MySQL數據庫 在使用Python操作MySQL之前,我們需要先連接MySQL數據庫。在Python中,我…

    編程 2025-04-29
  • Python代碼實現迴文數最少操作次數

    本文將介紹如何使用Python解決一道經典的迴文數問題:給定一個數n,按照一定規則對它進行若干次操作,使得n成為迴文數,求最少的操作次數。 一、問題分析 首先,我們需要了解迴文數的…

    編程 2025-04-29
  • Python磁盤操作全方位解析

    本篇文章將從多個方面對Python磁盤操作進行詳細闡述,包括文件讀寫、文件夾創建、刪除、文件搜索與遍歷、文件重命名、移動、複製、文件權限修改等常用操作。 一、文件讀寫操作 文件讀寫…

    編程 2025-04-29
  • Python元祖操作用法介紹

    本文將從多個方面對Python元祖的操作進行詳細闡述。包括:元祖定義及初始化、元祖遍歷、元祖切片、元祖合併及比較、元祖解包等內容。 一、元祖定義及初始化 元祖在Python中屬於序…

    編程 2025-04-29
  • Python列表的讀寫操作

    本文將針對Python列表的讀取與寫入操作進行詳細的闡述,包括列表的基本操作、列表的增刪改查、列表切片、列表排序、列表反轉、列表拼接、列表複製等操作。 一、列表的基本操作 列表是P…

    編程 2025-04-29

發表回復

登錄後才能評論