js中map()函数的使用案例详解

 更新时间:2022年11月11日 10:43:39   作者:芳草斜阳_晨光  
map()方法定义在JavaScript的Array中,它返回一个新的数组,数组中的元素为原始数组调用函数处理后的值,这篇文章主要介绍了js中map()函数的使用,需要的朋友可以参考下

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

前言

关键词:map

项目中我们常常会遇到要对后端返回的数据进行修改,从而达到符合我们前端开发人员的需要,其中map是常用到的对数组元素进行修改的重要函数。

提示:以下是本篇文章正文内容,下面案例可供参考

一、概念

map() 方法定义在JavaScript的Array中,它返回一个新的数组,数组中的元素为原始数组调用函数处理后的值。值得注意的是:1、map()函数不会对空数组进行检测;2、map()函数不会改变原始数组,它形成的是 一个新的数组

二、相关语法

array.map(function(currentValue, index, arr), thisIndex)
参数说明:

  • function(currentValue, index, arr):必须。为一个函数,数组中的每个元素都会执行这个函数。其中函数参数:
  1. currentValue:必须。表述当前元素的的值(item)
  2. index:可选。当前元素的索引也就是第几个数组元素。
  3. arr:可选。当前元素属于的数组对象
  • thisValue:可选。对象作为该执行回调时使用,传递给函数,用作"this"的值

三、示例

例1:对原数组元素进行平方后再赋值给新的数组

let array = [1, 2, 3, 4, 5];

let newArray = array.map((item) => {
    return item * item;
})

console.log(newArray)  // [1, 4, 9, 16, 25]

例2:将int类型的数据换成字符串类型

this.tableData = list.map(function (item) {
                if (item.leaseStatus === 0) {
                  item.leaseStatus = '已租';
                } else if (item.leaseStatus === 1) {
                  item.leaseStatus = '未租';
                } else if (item.leaseStatus === 2) {
                  item.leaseStatus = '已租';
                }
                if (res.data.data === null) {
                  item = '暂无记录';
                }
                return item;
              });

选择Object还是Map

(1)内存占用

Object和Map的工程级实现在不同浏览器间存在明显差异,但存储单个键/值对所占用的内存数量都会随键的数量线性增加。批量添加或删除键/值对则取决于各浏览器对该类型内存分配的工程实现。不同浏览器的情况不同,但给定固定大小的内存,Map大约可以比Object多存储50%的键/值对

(2)插入性能

向Object和Map中插入新键/值对的消耗大致相当,不过插入Map在所有浏览器中一般会稍微快一点儿。对这两个类型来说,插入速度并不会随着键/值对数量而线性增加。如果代码涉及大量插入操作,那么显然Map的性能更佳

(3)查找速度

与插入不同,从大型Object和Map中查找键/值对的差异极小,但如果只包含少量键/值对,则Object有时候速度更快。在把Object当成数组使用的情况下(比如使用连续整数作为属性),浏览器引擎可以进行优化,在内存中使用更高效的布局。这对Map来说是不可能的。对这两个类型而言,查找速度不会随着键/值对数量增加而线性增加。如果代码涉及大量查找操作,那么某些情况下可能选择Object更好一些

(4)删除性能

使用delete删除Object属性的性能一直以来饱受诟病,目前在很多浏览器中仍然如此。为此,出现了一些伪删除对象属性的操作,包括把属性设置为undefined或null。但很多时候,这都是一种讨厌的或不适宜的折中。而对大多数浏览器引擎来说,Map的delete()操作都比插入和查找更快。如果代码涉及大量删除操作,那么毫无疑问应该选择Map

最后

到此这篇关于js中map()函数的使用的文章就介绍到这了,更多相关js中map()函数的使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • javascript实时显示北京时间的方法

    javascript实时显示北京时间的方法

    这篇文章主要介绍了javascript实时显示北京时间的方法,涉及javascript操作时间显示的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • 教你用纯JS实现语雀的划词高亮功能

    教你用纯JS实现语雀的划词高亮功能

    最近在搞一个网站,需要在内容区域实现划词高亮功能,所以下面这篇文章主要给大家介绍了关于如何用纯JS实现语雀的划词高亮功能的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-09-09
  • 让图片跳跃起来  javascript图片轮播特效

    让图片跳跃起来 javascript图片轮播特效

    让图片跳跃起来 这篇文章主要介绍了javascript图片轮播特效,图片按照间隔时间进行切换,文章具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-02-02
  • 分享8个JavaScript库可更好地处理本地存储

    分享8个JavaScript库可更好地处理本地存储

    这篇文章主要介绍了分享8个JavaScript库可更好地处理本地存储,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • js实现下拉列表选中某个值的方法(3种方法)

    js实现下拉列表选中某个值的方法(3种方法)

    这篇文章主要介绍了js实现下拉列表选中某个值的方法,涉及JavaScript针对select下拉列表选择操作的相关技巧,需要的朋友可以参考下
    2015-12-12
  • 前端代码优化规范及实践指南

    前端代码优化规范及实践指南

    在前端开发的过程中,难免会遇到代码结构混乱、维护困难的情况,这就是所谓的“屎山代码”,“屎山”不仅影响代码的可读性和可维护性,也增加了开发的难度和出错的风险,在这里总结了一下代码优化规范及实践指南,需要的朋友可以参考下
    2025-07-07
  • 浅析JavaScrip哪些操作会造成内存泄露以及预防方法

    浅析JavaScrip哪些操作会造成内存泄露以及预防方法

    在 JavaScript 中,内存泄露是指程序不再使用的内存没有被释放,从而导致内存的持续增长,最终可能导致性能下降或应用崩溃,本文整理了一些容易造成内存泄漏的操作以及预防方法,需要的可以了解下
    2024-12-12
  • js判读浏览器是否支持html5的canvas的代码

    js判读浏览器是否支持html5的canvas的代码

    浏览器是否支持html5的canvas,我们可以使用js来判断下,具体如下,喜欢的朋友可以收藏
    2013-11-11
  • 如jQuery般易用的api风格代码分享

    如jQuery般易用的api风格代码分享

    最近几天闲来无事,随便写了点代码玩了玩。个人觉得,应该把编码当做一种乐趣,要不然会觉得很累...
    2011-01-01
  • JavaScript中的FormData类型示例详解

    JavaScript中的FormData类型示例详解

    这篇文章主要介绍了JavaScript中FormData类型的相关资料,JavaScript中的FormData接口用于构建和发送表单数据(尤其适合文件上传),文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-07-07

最新评论