在本教程中,我們將借助示例了解 JavaScript Array map() 方法。
map()
方法使用為每個數組元素調用函數的結果創建一個新數組。
示例
let numbers = [2, 4, 6, 8, 10];
// function to return the square of a number
function square(number) {
return number * number;
}
// apply square() function to each item of the numbers list
let square_numbers = numbers.map(square);
console.log(square_numbers);
// Output: [ 4, 16, 36, 64, 100 ]
map() 語法
用法:
arr.map(callback(currentValue), thisArg)
這裏,arr
是一個數組。
參數:
map()
方法包含:
callback
- 為每個數組元素調用的函數。它的返回值被添加到新數組中。它包含:currentValue
- 從數組傳遞的當前元素。
thisArg
(可選)- 執行callback
時用作this
的值。默認情況下,它是undefined
。
返回:
- 返回一個新數組,其中元素作為每個元素的
callback
函數的返回值。
注意:
map()
不會更改原始數組。map()
按順序為每個數組元素執行一次callback
。map()
不對沒有值的數組元素執行callback
。
示例 1:使用自定義函數映射數組元素
const prices = [1800, 2000, 3000, 5000, 500, 8000];
let newPrices = prices.map(Math.sqrt);
// [ 42.42640687119285, 44.721359549995796, 54.772255750516614,
// 70.71067811865476, 22.360679774997898, 89.44271909999159 ]
console.log(newPrices);
// custom arrow function
const string = "JavaScript";
const stringArr = string.split(''); // array with individual string character
let asciiArr = stringArr.map(x => x.charCodeAt(0));
// map() does not change the original array
console.log(stringArr); // ['J', 'a', 'v', 'a','S', 'c', 'r', 'i', 'p', 't']
console.log(asciiArr); // [ 74, 97, 118, 97, 83, 99, 114, 105, 112, 116 ]
輸出
[ 42.42640687119285, 44.721359549995796, 54.772255750516614, 70.71067811865476, 22.360679774997898, 89.44271909999159 ] [ 'J', 'a', 'v', 'a', 'S', 'c', 'r', 'i', 'p', 't' ] [ 74, 97, 118, 97, 83, 99, 114, 105, 112, 116 ]
示例 2:map() 用於數組中的對象元素
const employees = [
{ name: "Adam", salary: 5000, bonus: 500, tax: 1000 },
{ name: "Noah", salary: 8000, bonus: 1500, tax: 2500 },
{ name: "Fabiano", salary: 1500, bonus: 500, tax: 200 },
{ name: "Alireza", salary: 4500, bonus: 1000, tax: 900 },
];
// calculate the net amount to be given to the employees
const calcAmt = (obj) => {
newObj = {};
newObj.name = obj.name;
newObj.netEarning = obj.salary + obj.bonus - obj.tax;
return newObj;
};
let newArr = employees.map(calcAmt);
console.log(newArr);
輸出
[ { name: 'Adam', netEarning: 4500 }, { name: 'Noah', netEarning: 7000 }, { name: 'Fabiano', netEarning: 1800 }, { name: 'Alireza', netEarning: 4600 } ]
注意:map()
分配undefined
到新數組,如果callback
函數返回undefined
或者什麽都沒有。
相關用法
- JavaScript Array map()用法及代碼示例
- JavaScript Array fill()用法及代碼示例
- JavaScript Array flatMap()用法及代碼示例
- JavaScript Array length用法及代碼示例
- JavaScript Array isArray()用法及代碼示例
- JavaScript Array values()用法及代碼示例
- JavaScript Array entries()用法及代碼示例
- JavaScript Array includes()用法及代碼示例
- JavaScript Array find()用法及代碼示例
- JavaScript Array unshift()用法及代碼示例
- JavaScript Array pop()用法及代碼示例
- JavaScript Array shift()用法及代碼示例
- JavaScript Array some()用法及代碼示例
- JavaScript Array indexOf()用法及代碼示例
- JavaScript Array reverse()用法及代碼示例
- JavaScript Array lastIndexOf()用法及代碼示例
- JavaScript Array flat()用法及代碼示例
- JavaScript Array forEach()用法及代碼示例
- JavaScript Array concat()用法及代碼示例
- JavaScript Array join()用法及代碼示例
注:本文由純淨天空篩選整理自 JavaScript Array map()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。