首页 > 其他分享 >#yyds干货盘点#JS中的map用法

#yyds干货盘点#JS中的map用法

时间:2022-10-23 21:08:24浏览次数:67  
标签:yyds return map item 元素 JS callback 数组

map()

​map()​​ 方法会返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。

​map​​​ 方法会给原数组中的每个元素都按顺序调用一次 ​​callback​​​ 函数。​​callback​​​ 每次执行后的返回值(包括 ​​undefined​​​)组合起来形成一个新数组。 ​​callback​​​ 函数只会在有值的索引上被调用;那些从来没被赋过值或者使用 ​​delete​​ 删除的索引则不会被调用。

因为​​map​​生成一个新数组,当你不打算使用返回的新数组却使用​​map​​是违背设计初衷的,请用​​forEach​​或者​​for-of​​替代。你不该使用​​map​​: A)你不打算使用返回的新数组,或/且 B) 你没有从回调函数中返回值。

​callback​​ 函数会被自动传入三个参数:数组元素,元素索引,原数组本身。

var map = Array.prototype.map
var a = map.call("Hello World", function(x) {
return x.charCodeAt(0);
})
// a的值为[72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100]

可以链式调用

arr.map(item=>item.time).map(item=>item.scaner)

注意点:

  • map 方法不会对空数组进行检测;
  • map 方法遍历数组时会返回一个新数组,不会改变原始数组
  • map 方法有返回值,可以return出来,map的回调函数中支持return返回值;
  • map 方法无法遍历对象,仅适用于数组的遍历。
  • ​map​​​ 方法处理数组元素的范围是在​​callback​​​ 方法第一次调用之前就已经确定了。调用​​map​​​方法之后追加的数组元素不会被​​callback​​​访问。如果存在的数组元素改变了,那么传给​​callback​​​的值是​​map​​​访问该元素时的值。在​​map​​函数调用后但在访问该元素前,该元素被删除的话,则无法被访问到。


场景实例

使用 map 重新格式化数组中的对象

var kvArray = [{key: 1, value: 10},
{key: 2, value: 20},
{key: 3, value: 30}];

var reformattedArray = kvArray.map(function(obj) {
var rObj = {};
rObj[obj.key] = obj.value;
return rObj;
});

// reformattedArray 数组为: [{1: 10}, {2: 20}, {3: 30}],

标签:yyds,return,map,item,元素,JS,callback,数组
From: https://blog.51cto.com/u_11365839/5787572

相关文章

  • SpringBoot项目整合Mybatis时Mapper.xml文件的存放位置
    SpringBoot项目整合Mybatis时Mapper.xml文件的存放位置目录:方式一:放在与Mapper接口同级目录方式二:在resources创建Mapper接口同名文件夹用来存放Mapper.xml文件方式三:......
  • PriorityQueue 最小堆&& treemap
    优先队列的作用是能保证每次取出的元素都是队列中权值最小的(Java的优先队列每次取最小元素)。这里牵涉到了大小关系,元素大小的评判可以通过元素本身的自然顺序(naturalorder......
  • jsp 过滤器
    简介Servlet过滤器从字面上的字意理解为经过一层次的过滤处理才达到使用的要求,而其实Servlet过滤器就是服务器与客户端请求与响应的中间层组件,在实际项目开发中Servlet过滤......
  • JSP内置对象
    简介JSP的内置对象是指在JSP页面系统中已经默认内置的Java对象,这些对象不需要开发人员显式声明即可使用。在JSP页面中,可以通过存取JSP内置对象实现与JSP页面和Servlet环境......
  • Fastjson反序列化(一)
    前置知识Fastjson是一个Java库,可以将Java对象转换为JSON格式,当然它也可以将JSON字符串转换为Java对象。Fastjson可以操作任何Java对象,即使是一些预先存在......
  • P7911 CSP J 2021 T3 纯模拟 无map 代码
    目录申明前置知识sscanf与sprintf应用字符串常用函数代码后记申明解释在注释里注释掉的不用管写错的代码可借鉴原题:洛谷P7911前置知识sscanf与sprintf/*sscanf......
  • jsp页面中的正则表达式--主要用于js判断文本格式
    一、方括号[]举例:二、^三、元字符举例的话,就可以这么说,要实现要表示整数的话:[]就表示输入的文本框里面的数字的第一位,可以这么写--->[1-9]然后已知\d表示的与[0-9......
  • js原生转码API
    encodeURIComponent(编码)letencodeBase=encodeURIComponent();decodeURIComponent(解码)letdecodeBase=decodeURIComponent();......
  • List和Map、Set的区别
    List和Map、Set的区别结构特点List和Set是存储单列数据的集合,Map是存储键和值这样的双列数据的集合;List中存储的数据是有顺序,并且允许重复;Map中存储的数据是没有顺序的,......
  • #yyds干货盘点# LeetCode 腾讯精选练习 50 题:盛最多水的容器
    题目:给定一个长度为n的整数数组 height 。有 n 条垂线,第i条线的两个端点是 (i,0) 和 (i,height[i]) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以......