深入浅出:从多个方面详解map函数JS

一、基本使用方法

//ES5
var arr = [1,2,3,4];
var newArr = arr.map(function(item){
  return item * 2;
})
console.log(newArr); // [2,4,6,8]

//ES6
let arr = [1,2,3,4];
let newArr = arr.map(item => item * 2);
console.log(newArr); // [2,4,6,8]

map函数是JavaScript Array的方法之一。作用是对数组中的每一项进行处理后,返回一个新的数组。

基本语法:array.map(callback(currentValue[, index[, array]])

其中callback表示一个函数,可以有三个参数:currentValue表示当前正在处理的元素,index表示当前正在处理的元素的索引,array表示原数组。其中currentIndex和array是可选的参数。

二、高级使用方法

1、实现数组去重

let arr = [1,2,2,3,3,3,4,4,4,4],
    newArr = arr.sort((a,b)=>a-b).map((v, i, self) => {
        if(i == 0){
            return v;
        }else{
            if(v !== self[i-1]){
                return v;
            }
        }
    }).filter(v => v);
console.log(newArr); //[1,2,3,4]

代码原理:先将数组排序,然后通过map方法,如果当前元素不等于前一个,则返回当前元素,最后通过filter方法过滤掉undefined。

2、通过map实现一些常见的数组方法

//forEach
function forEach(arr, cb){
  for(let i=0;i<arr.length;i++){
    cb(arr[i],i,arr);
  }
}
//map
function map(arr, cb){
  let res = [];
  for(let i=0;i<arr.length;i++){
    res.push(cb(arr[i],i,arr));
  }
  return res;
}
//filter
function filter(arr, cb){
  let res = [];
  for(let i=0;i item * 2);
console.log(newArr); //[2,4,6,8]

代码原理:通过自定义forEach,map,filter方法实现类似于它们的功能,同时使用map方法使代码更加简洁。

三、使用场景

1、数据展示

let arr = [
  {
    name: 'Tom',
    age: 18
  },
  {
    name: 'Jerry',
    age: 20
  }
];
let nameArr = arr.map((obj) => obj.name);
console.log(nameArr); //['Tom','Jerry']

代码原理:通过map方法,将数组中每一个对象中的name属性提取出来,生成一个新的数组。

2、数组操作

let arr = [1,2,3,4],
    newArr = arr.map((item) => item * 2);
console.log(newArr); //[2,4,6,8]

代码原理:通过map方法,将数组中的每一个元素都乘以2,生成一个新的数组。

3、字符串处理

let arr = [' apple ', ' banana ', ' pear '],
    trimArr = arr.map((item) => item.trim());
console.log(trimArr); // ['apple', 'banana', 'pear']

代码原理:通过map方法,将数组中的每个字符串都去除空格,生成一个新的数组。

4、生成HTML元素

let arr = ['apple','banana','pear'],
    htmlArr = arr.map(item => `
  • ${item}
  • `).join(''); console.log(`
      ${htmlArr}
    `); //
    • apple
    • banana
    • pear

    代码原理:通过map方法生成一个新的数组,其中每个元素都是一个li元素字符串。最后通过join方法将字符串数组拼接成一个完整的ul元素字符串。

    四、总结

    map函数是JavaScript中常用的高阶函数,通过它可以简化很多数组的操作。使用map方法不仅可以快速地生成新的数组,也可以实现一些常见的数组方法功能。同时它也可以用于各种场景,比如数据展示,数组操作,字符串处理和生成HTML元素等等。

    原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/298113.html

    (0)
    打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
    小蓝的头像小蓝
    上一篇 2024-12-28 12:17
    下一篇 2024-12-28 12:17

    相关推荐

    • Python中引入上一级目录中函数

      Python中经常需要调用其他文件夹中的模块或函数,其中一个常见的操作是引入上一级目录中的函数。在此,我们将从多个角度详细解释如何在Python中引入上一级目录的函数。 一、加入环…

      编程 2025-04-29
    • Python中capitalize函数的使用

      在Python的字符串操作中,capitalize函数常常被用到,这个函数可以使字符串中的第一个单词首字母大写,其余字母小写。在本文中,我们将从以下几个方面对capitalize函…

      编程 2025-04-29
    • 为什么Python不能编译?——从多个方面浅析原因和解决方法

      Python作为很多开发人员、数据科学家和计算机学习者的首选编程语言之一,受到了广泛关注和应用。但与之伴随的问题之一是Python不能编译,这给基于编译的开发和部署方式带来不少麻烦…

      编程 2025-04-29
    • Python中set函数的作用

      Python中set函数是一个有用的数据类型,可以被用于许多编程场景中。在这篇文章中,我们将学习Python中set函数的多个方面,从而深入了解这个函数在Python中的用途。 一…

      编程 2025-04-29
    • 单片机打印函数

      单片机打印是指通过串口或并口将一些数据打印到终端设备上。在单片机应用中,打印非常重要。正确的打印数据可以让我们知道单片机运行的状态,方便我们进行调试;错误的打印数据可以帮助我们快速…

      编程 2025-04-29
    • 三角函数用英语怎么说

      三角函数,即三角比函数,是指在一个锐角三角形中某一角的对边、邻边之比。在数学中,三角函数包括正弦、余弦、正切等,它们在数学、物理、工程和计算机等领域都得到了广泛的应用。 一、正弦函…

      编程 2025-04-29
    • Python3定义函数参数类型

      Python是一门动态类型语言,不需要在定义变量时显示的指定变量类型,但是Python3中提供了函数参数类型的声明功能,在函数定义时明确定义参数类型。在函数的形参后面加上冒号(:)…

      编程 2025-04-29
    • Java判断字符串是否存在多个

      本文将从以下几个方面详细阐述如何使用Java判断一个字符串中是否存在多个指定字符: 一、字符串遍历 字符串是Java编程中非常重要的一种数据类型。要判断字符串中是否存在多个指定字符…

      编程 2025-04-29
    • Python定义函数判断奇偶数

      本文将从多个方面详细阐述Python定义函数判断奇偶数的方法,并提供完整的代码示例。 一、初步了解Python函数 在介绍Python如何定义函数判断奇偶数之前,我们先来了解一下P…

      编程 2025-04-29
    • Python合并多个相同表头文件

      对于需要合并多个相同表头文件的情况,我们可以使用Python来实现快速的合并。 一、读取CSV文件 使用Python中的csv库读取CSV文件。 import csv with o…

      编程 2025-04-29

    发表回复

    登录后才能评论