javascript 数组 包含-JavaScript 数组 Map() 方法

2023-08-29 0 2,042 百度已收录

有没有想过 JavaScript 数组映射是什么? 它能做什么? 或者什么时候应该使用它? 这篇文章给你一个完整的介绍! 首先让我们看一下即将到来的map方法的定义。

认识方式

根据 MDN 文档:

map() 方法创建一个新字段,其中包含对链表中每个元素调用所提供函数的结果。

让我们简化一下。

JavaScript 映射方法采用一个字段 (array1)javascript 数组 包含,并通过对给定字段 (array1) 中的每个元素调用函数来创建一个新字段 (array2)。 为了进一步解释这一点,我们将使用一个示例来了解 map 方法的作用。

让我们使用常规的 for 循环来演示 map 函数的作用。 典型的情况是,如果我们想要给定字段中所有元素的平方字段,我们可以使用 for 循环来实现,如下例所示:

    const array = [2, 5, 9];
   let squares = [];

   for (let i = 0; i < array.length; i++) {
       squares.push(array[i] * array[i]));
  }

   console.log(squares); // [4, 25, 81]
   console.log(array); // [2, 5, 9]

上述哪一项已经实现? 它循环遍历一个字段,找到该字段中每个元素的平方并将其放入最初定义的平方字段中。

这与 map 函数的作用类似,只不过您不需要定义另一个链表来将结果推送到其中。 地图功能手动执行此操作。 那么让我们使用map函数来完成上述操作。

PS:示例中使用了箭头函数。

    const array = [2, 5, 9];
   let squares = array.map((num) => num * num);

   console.log(squares); // [4, 25, 81]
   console.log(array); // [2, 5, 9]

请注意,使用 map 方法来完成同样的事情要容易得多。 另请注意,初始字段保持不变,这在函数式编程中非常有用。 现在让我们更深入地了解一下map 方法。

Map方法及其语法

映射函数的语法如下:

    let newArray = array.map((currentValue, index, array) => {
       // return element to new Array
  });

以下是关于 map 方法的一些注意事项:

它返回一个新的链表。

它不会改变调用它的原始字段,即原始字段保持不变。

map 函数处理的元素范围在第一次调用之前设置。 如果在映射开始后将元素添加到链表中,则该元素不会被退回。

何时使用地图方法

鉴于链表还有其他类似的方法,例如 ForEach 方法,您可能想知道“什么时候应该使用(或不使用)map 方法?” 以下是一些可以帮助您做出决定的问题:

我是否需要从该方法返回一个字段以及是否会使用返回的字段?

我是否从回调函数返回一个值?

如果您对这些问题中的任何一个的回答是“是”,则应该使用地图功能。 如果两种情况的答案是否定的,则应使用 forEachorfor..of 代替。

地图方法示例

除了前面使用的示例之外javascript 数组 包含,这里还有一些其他示例,说明您可以使用地图方法执行哪些操作。

示例 1:从对象字段中提取值

我们想要从对象字段中提取单个值。 例如,在一群男孩中,我们想要获取男孩的年龄。

    const girls = [
      {name: 'Sarah', age: 19},
      {name: 'Laura', age: 10},
      {name: 'Jessy', age: 29},
      {name: 'Amy', age: 23}];

   let girlsAges = girls.map((girl) => girl.age);

   console.log(girlsAges);  //[19, 10, 29, 23]

示例 2:仅对单个元素应用反弹

如果我们希望反弹仅适用于链表中的单个元素,例如素数,我们可以使用 if 语句来实现。

    const numbers = [4, 9, 36, 49];

   let oddSquareRoots = numbers.map((num) => {
      if(num % 2 != 0) {
          return Math.sqrt(num)    
      }
      return num;
  })

   console.log(oddSquareRoots);

或使用三元运算符

    const numbers = [4, 9, 36, 49];

   let oddSquareRoots = numbers.map((num) => {
      return num % 2 !== 0 ? Math.sqrt(num) : num
  })

   console.log(oddSquareRoots);

然而,实现此目的的更有效方法是使用 JavaScript 数组过滤器技巧。 这将在我的下一篇文章中讨论。

综上所述

如果使用正确,JavaScript Array Map 方法是一种简化代码的方法。 如果您还有其他如何使用地图方法的示例,请在评论部分分享。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 javascript javascript 数组 包含-JavaScript 数组 Map() 方法 https://www.wkzy.net/game/180710.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务