Phương thức JavaScript Array map () tạo một mảng mới với kết quả của việc gọi một hàm cho mọi phần tử mảng.
Cú pháp của map()
phương thức là:
arr.map(callback(currentValue), thisArg)
Ở đây, arr là một mảng.
map () Tham số
Các map()
phương pháp có trong:
- callback - Hàm được gọi cho mọi phần tử mảng. Các giá trị trả về của nó được thêm vào mảng mới. Nó có:
- currentValue - Phần tử hiện tại đang được truyền từ mảng.
- thisArg (tùy chọn) - Giá trị sử dụng như
this
khi thực hiện lệnh gọi lại. Theo mặc định, nó làundefined
.
Trả về giá trị từ bản đồ ()
- Trả về một mảng mới với các phần tử là giá trị trả về từ
callback
hàm cho mỗi phần tử.
Ghi chú :
map()
không thay đổi mảng ban đầu.map()
thực thicallback
một lần cho mỗi phần tử mảng theo thứ tự.map()
không thực thicallback
cho các phần tử mảng không có giá trị.
Ví dụ 1: Ánh xạ các phần tử mảng bằng hàm tùy chỉnh
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 )
Đầu ra
(42.42640687119285, 44.721359549995796, 54.772255750516614, 70.71067811865476, 22.360679774997898, 89.44271909999159) ('J', 'a', 'v', 'a', 'S', 'c', 'r', '' 't') (74, 97, 118, 97, 83, 99, 114, 105, 112, 116)
Ví dụ 2: map () cho các phần tử đối tượng trong mảng
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 amout 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);
Đầu ra
((tên: 'Adam', netEarning: 4500), (tên: 'Noah', netEarning: 7000), (name: 'Fabiano', netEarning: 1800), (name: 'Alireza', netEarning: 4600))
Lưu ý : map()
gán undefined
cho mảng mới nếu callback
hàm trả về undefined
hoặc không có gì.
Đề xuất đọc: Bộ lọc mảng JavaScript ()