JavaScript数组方法.map()
#javascript #编程 #map #arrayiteration

大家好,在这篇文章中,我将在示例的帮助下尝试解释JavaScript Array Map()方法。

MAP()方法在数组中的每个元素上迭代,并创建新数组将每个元素传递到特定函数。

语法:
map()方法的一般语法为:

array.map(callback(currentValue), thisArg)

参数: map()方法接受两个参数:

  • callback-此功能在数组的每个元素上调用,并返回将在新数组中添加的值。它需要3个参数:

    • CurrentValue:这是一个必需的参数,它具有当前元素的值。
    • 索引:这是一个可选参数,它保存了当前元素的索引。
    • 数组:它是一个可选参数,它保存数组。
  • thisArg(可选) - 用于将传递给该函数的值保持。默认情况下它是未定义的。

返回值:它返回一个带有元素的新数组,作为每个元素的callback函数的返回值。

注意:

  1. map()不会更改原始数组。
  2. 它为每个数组元素执行callback
  3. 它不会为没有值的元素执行callback

以下示例说明了JavaScript中的数组映射()方法的使用:

示例1:在下面的示例map()方法中,将原始数组的元素带入并带有带有元素平方的新数组。

const numbers = [2, 5, 8];
const sqrNumbers = numbers.map((num) => num * num);

console.log(numbers); // [2, 5, 8];
console.log(sqrNumbers); // [4, 25, 64];

示例2:在下面的示例map()方法中,从名称数组中获取每个城市名称,并带有大写城市名称的新数组。

const names = ["brampton", "london", "new york"];
const UpperCaseNames = names.map((name) => name.toLocaleUpperCase());

console.log(names); // ["brampton", "london", "new york"]
console.log(UpperCaseNames); // ["BRAMPTON", "LONDON", "NEW YORK"]

示例3:在下面的示例map()方法中迭代每个员工数据,并返回Newarr中的每个员工的网络级。

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);
/* Output will be : 
[
  { name: 'Adam', netEarning: 4500 },
  { name: 'Noah', netEarning: 7000 },
  { name: 'Fabiano', netEarning: 1800 },
  { name: 'Alireza', netEarning: 4600 }
] */

在结论映射()中,方法用于修改数组中的每个元素,并返回带有修改元素的新数组。

感谢您阅读这篇文章。

有关更多信息,请检查以下资源:

  1. MDN-Array.prototype.map()
  2. geeksforgeeks
  3. w3schools