Bản đồ mảng JavaScript ()

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ư thiskhi 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ừ callbackhàm cho mỗi phần tử.

Ghi chú :

  • map() không thay đổi mảng ban đầu.
  • map()thực thi callbackmột lần cho mỗi phần tử mảng theo thứ tự.
  • map()không thực thi callbackcho 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 undefinedcho mảng mới nếu callbackhàm trả về undefinedhoặc không có gì.

Đề xuất đọc: Bộ lọc mảng JavaScript ()

thú vị bài viết...