一、map方法的基本概念
map方法是JavaScript中數組的一個基礎方法。它可以將數組中的每個元素傳入一個回調函數中進行處理,並將返回的結果組成一個新的數組返回。map方法可以不改變原數組,而是返回一個新的數組。
map方法的語法如下:
array.map(function(currentValue, index, arr), thisValue)
其中參數function(currentValue, index, arr)是回調函數,thisValue是可選參數,表示函數中this的值。
二、map方法的使用方法
1.將數組中的元素映射為新的數組
使用map方法可以將數組中的每個元素映射為新的數組,根據映射的規則進行操作,最後將得到一個新的數組。例如,我們有一個數組,表示攝氏度的溫度值。
let celsius = [0, 15, 20, 25, 30];
現在我們要將這些攝氏度的溫度值轉換為華氏度的溫度值,並存入一個新的數組fahrenheit中,可以使用如下代碼:
let fahrenheit = celsius.map(function(temp) { return temp * 1.8 + 32; });
這裡我們傳入回調函數function(temp),參數temp就是數組中每個元素,回調函數中的操作是將攝氏度轉換為華氏度。
執行結果:
fahrenheit = [32, 59, 68, 77, 86];
2.將對象中的某個屬性值提取出來為新的數組(對象數組)
在JavaScript中,我們經常會遇到對象數組,比如:
let students = [ {name: '小明', gender: '男', age: 18}, {name: '小紅', gender: '女', age: 19}, {name: '小黃', gender: '男', age: 17}, ];
如果想提取出所有學生的年齡,可以使用map方法。
let ages = students.map(function(student) { return student.age; });
執行結果:
ages = [18, 19, 17];
3.數組去重
使用map方法可以輕鬆地將數組中重複的元素去掉,只保留不重複的元素。例如,現在有一個包含重複元素的數組。
let arr = [1, 2, 3, 4, 2, 3, 5, 6, 6];
我們可以使用map方法和indexOf方法來實現數組去重:
let newArr = arr.map(function(item) { if (arr.indexOf(item) === arr.lastIndexOf(item)) { return item; } });
執行結果:
newArr = [1, 4, 5];
三、map方法的應用場景
1.數據的轉換
map方法很適合對數據進行轉換的場景,如將攝氏度轉換為華氏度,將分數轉換為等級等。
2.多個數組的合併
在實際開發中,我們可能需要將多個數組合併成一個數組。使用map方法可以將多個數組合併成一個新的數組。
let arr1 = [1, 2, 3]; let arr2 = [4, 5, 6]; let arr3 = [7, 8, 9]; let result = [arr1, arr2, arr3].map(Function.prototype.call, Array.prototype.concat.bind([]));
執行結果:
result = [1, 2, 3, 4, 5, 6, 7, 8, 9];
3.表單驗證
在表單驗證時,我們可以使用map方法來驗證一個或多個輸入框的內容是否符合要求,並返回一個包含驗證結果的數組。例如,我們在一個表單中有兩個輸入框,分別是用戶名和密碼,可以使用如下代碼進行驗證:
let inputs = document.querySelectorAll('input'); let results = Array.from(inputs).map(function(input) { let value = input.value.trim(); if (input.type === 'text' && value.length > 6) { return true; } else if (input.type === 'password' && value.length > 8) { return true; } else { return false; } });
執行結果:
results = [true, false];
4.根據條件篩選出數組中的元素
使用map方法可以根據條件篩選出數組中符合要求的元素,並返回一個包含篩選結果的新數組。例如,現在有一個對象數組:
let users = [ {name: '小明', age: 18, gender: '男'}, {name: '小紅', age: 19, gender: '女'}, {name: '小黃', age: 17, gender: '男'}, {name: '小蘭', age: 20, gender: '女'}, {name: '小剛', age: 16, gender: '男'}, ];
我們想要篩選出所有年齡大於等於18歲的用戶,可以使用如下代碼:
let adultUsers = users.map(function(user) { if (user.age >= 18) { return user; } }).filter(function(user) { return user != null; });
執行結果:
adultUsers = [ {name: '小明', age: 18, gender: '男'}, {name: '小紅', age: 19, gender: '女'}, {name: '小蘭', age: 20, gender: '女'}, ];
四、小結
本文詳細介紹了數組的map方法的基本概念、使用方法和應用場景。map方法可以將數組中的元素映射為新的數組,去重,以及用於數據轉換、多個數組的合併、表單驗證和根據條件篩選出數組中的元素等場景。map方法在實際開發中應用廣泛,是JavaScript中數組的基礎方法之一。
原創文章,作者:FXHS,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/147417.html