map()的用法

JavaScript Array map() 方法

先说说这个方法浏览器的支持:
支持五大主流的浏览器,
特别注意:IE 9 以下的浏览器不支持,只支持IE 9以上的版本的浏览器
特别注意:IE 9 以下的浏览器不支持,只支持IE 9以上的版本的浏览器
特别注意:IE 9 以下的浏览器不支持,只支持IE 9以上的版本的浏览器

一、定义和用法

map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
map() 方法按照原始数组元素顺序依次处理元素。
注意: map() 不会对空数组进行检测。
注意: map() 不会改变原始数组。

二、语法

array.map(function(currentValue,index,arr), thisValue)

三、参数说明

currentValue: 必须。当前元素的值
index: 可选。当前元素的索引值
arr: 可选。当前元素属于的数组对象
thisValue: 可选。对象作为该执行回调时使用,传递给函数,用作 “this” 的值。
如果省略了 thisValue,或者传入 null、undefined,那么回调函数的 this 为全局对象。

例子一:

把数组里每个值乘以2并返回一个新数组

ar arr = ["中国", "美国", "俄罗斯"];
    let newArr = arr.map((record,k) => {
        console.log(record)
        console.log(k)
    })
    // 1. 把数组里每个值乘以2并返回一个新数组
    let arr1 = [7,10,3,2]
    const newArr1 = arr1.map((record,k) => {
        return record * 2
    })
    console.log(newArr1) // 打印:  [14, 20, 6, 4]

例子二:

把数组里面每个值前面都加一个统一的姓叫“张”,并返回一个新数组

    // 2.把数组里面每个值前面都加一个统一的姓叫“张”,并返回一个新数组
    let arr2 = ['小米','华为','苹果']
    let newArr2= arr2.map((record,k) => {
        return '张' + record
    })
    console.log(newArr2)  // 打印: ['张小米', '张华为', '张苹果']

例子三:

3.遍历数组里每个对象,并返回新数组(要求新数组里每个对象有一个新的属性叫iq(值为50-100随机整数)),重点:不能影响原数组里面的对象

    let arr3 = [
        {name: '孙悟空',age:500},
        {name: '猪八戒',age:300},
        {name: '沙僧',age:309},
        {name: '唐三藏',age:200},
        {name: '白龙马',age:100}
    ]
    let newArr3 = arr3.map((record, k) => {
        return {
            name: record.name,
            age: record.age,
            iq:Math.floor(Math.random()*(100-50+1)+50)
        }
    })
    console.log(newArr3)

例子三的打印结果:
在这里插入图片描述

例子四:

  1. 遍历数组里每个对象,并返回新数组,要求新数组里每个对象只有name属性和值(并且不能影响原来数组里对象的属性和值)
let arr4 = [
        {name: '孙悟空',age:500},
        {name: '猪八戒',age:300},
        {name: '沙僧',age:309},
        {name: '唐三藏',age:200},
        {name: '白龙马',age:100}
    ]
    let newArr4 = arr4.map((record,k) => {
        return {
            name: record.name
        }
    })
    console.log(arr4)
    console.log(newArr4)

例子四的打印结果:
在这里插入图片描述

例子五:

重构数组:用name的值作为key,age的值作为value,用来重构数组
方法一:

    // 方法一:结构出对象的键值对
    let newArr41 = arr4.map(({name,age}) => {
        return {
            [name]: age
        }
    })
    console.log(newArr41)

例子五中方法一的打印结果:
在这里插入图片描述

方法二:

    // 方法二:
    let newArr42 = arr4.map((record,k) => {
        return{[record.name]: record.age}
    })
    console.log(newArr42,'newArr42')

例子五中方法二的打印结果:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/207331.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

uniapp微信小程序地图实现绘制polygon(保姆级教程 全网最全!!!)

用户需求:需要在填写表单信息时,在地图上标绘自己房屋的位置信息。 这个问题处理了很久,在网上也没有找到全面的相关案例,所以我将我的思路分享给大家,希望可以解决大家遇到的问题。如果大家有更好的思路,…

分享几种 Java8 中通过 Stream 对列表进行去重的方法

作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO 联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬 1. Stream 的 distinct…

java商城系统选型技巧

近期有很多网友在知乎、百度上咨询如何选择java商城系统,本文我们介绍目前有哪些java商城系统,如何选择商城系统,希望有所帮助。 我们之前做过调研,目前java语言开发的商城系统主要有shop、javashop、ejavashop、远丰、mall4j、li…

重测序项目文章 | Fungal Diversity(IF:20.3)发表杯伞科真菌系统分类和毒蝇碱进化的研究

Clitocybaceae(杯伞科)是近期建立的真菌家族。目前,由于取样和用于系统发育分析的基因有限,该家族内的亚科分化和关系尚不清晰。该家族的一些蘑菇含有神经毒性毒蕈碱,导致全球范围内许多严重甚至致命的中毒事件。然而&…

vue2使用ElementUI

elementui官网:组件 | Element 1、全部引入 下载:npm i element-ui 在 main.js 中写入以下内容:import Vue from vue; import ElementUI from element-ui; import element-ui/lib/theme-chalk/index.css; import App from ./App.vue;Vue.use(…

『Fiddler数据抓包功攻略』| 如何使用Fiddler进行数据抓包与分析?

『Fiddler数据抓包功攻略』| 如何使用Fiddler进行数据抓包与分析? 1 关于Fiddler2 Fiddler安装3 Fiddler信息查看3.1 查看请求信息3.2 查看响应信息3.3 查看会话信息统计 4 Fiddler暂停抓包5 Fiddler清除抓包数据6 Fiddler设置Filters过滤6.1 关于Actions6.2 关于Us…

c++ day 4

代码整理&#xff0c; 将学过的三种运算符重载&#xff0c;每个至少实现一个运算符的重载:分别是-&#xff0c;-&#xff0c;<。 #include <iostream>using namespace std; class Stu {friend const Stu operator-(const Stu &L,const Stu &R);friend bool o…

picgo配置又拍云

又拍云控制台配置操作员账号 添加操作员账号 进入又拍云的控制台 又拍云控制台 (upyun.com) 右上角选择账号下拉框&#xff0c;选择账户管理 在账户管理中&#xff0c;选择操作员&#xff0c;添加操作员 输入操作员名字&#xff0c;点击生成密码&#xff0c;填入操作员备注…

音频修复和增强软件iZotope RX 10 mac特点介绍

iZotope RX 10 mac是一款音频修复和增强软件&#xff0c;主要特点包括&#xff1a; 声音修复&#xff1a;iZotope RX 10可以去除不良噪音、杂音、吱吱声等&#xff0c;使音频变得更加清晰干净。 音频增强&#xff1a;iZotope RX 10支持对音频进行音量调节、均衡器、压缩器、限…

Jinja2使用Layui报 “d is not defined“

问题出现场景在使用Jinja2渲染Layui的表格时候&#xff0c;要做自定义templte的传入 Jinja2这块本来就是支持 {{ }} 插值的模板语言&#xff0c;所以这块的第一种渲染方式会冲突 所以只能用函数返回代码块进行填充&#xff0c;不能使用插值&#xff0c;只能拼接字符串 templt…

web项目添加防调试

新建js文件debug-vconsole.js /**防止非法调试*/ (function () {function getLocationHrefParams(name) {var reg new RegExp("(^|&)" name "([^&]*)(&|$)");var r window.location.search.substr(1).match(reg);if (r ! null) return un…

docker部署elasticsearch+kibana+head

前言 最近&#xff0c;项目需要使用elasticsearch&#xff0c;所以就想快速安装一个使用&#xff0c;最开始是docker安装了7.10.1版本。 后面计划使用Java开发&#xff0c;发现有 RestHighLevelClient 和 Elasticsearch Java API Client两种客户端连接方式。 然后网上查阅了一…

【微服务 SpringCloudAlibaba】实用篇 · Nacos配置中心

微服务&#xff08;6&#xff09; 文章目录 微服务&#xff08;6&#xff09;1. 统一配置管理1.1 在nacos中添加配置文件1.2 从微服务拉取配置 2. 配置热更新2.1 方式一2.2 方式二 3. 配置共享1&#xff09;添加一个环境共享配置2&#xff09;在user-service中读取共享配置3&am…

数字人可以为文化传播带来什么?

近日&#xff0c;由哈萨克斯坦驻华大使馆、中国外文局文化传播中心、中关村科幻产业创新中心联合发起的中哈青年友谊数字人怡漾和苏路&#xff08;Сұлу&#xff09;正式发布。其中&#xff0c;代表中方形象的数字人怡漾&#xff0c;不仅将成为中哈青年文化交流的标志与代言…

seq2seq:中英文翻译

文章目录 一、完整代码二、论文解读2.1 RNN模型2.2 Attention-based ModelsGlobal attentional modelLocal attentional model 2.3 Input-feeding Approach2.4 模型效果 三、过程实现3.1 导包3.2 数据准备3.3 构建相关类3.4 模型配置3.5 模型推理 四、整体总结 论文&#xff1a…

Facebook公共主页受限、被封?一文教你排雷解决

一、Facebook公共主页是什么&#xff1f; 现在人们的生活已经离不开各种社交媒体&#xff0c;只要有智能手机&#xff0c;或多或少会使用一些社交平台&#xff0c;而Facebook是一个拥有大量用户的社交平台。这对于各种企业而言&#xff0c;也是一个十分优秀的营销平台&#xf…

使用Docker安装部署Swagger Editor并远程访问编辑API文档

文章目录 Swagger Editor本地接口文档公网远程访问1. 部署Swagger Editor2. Linux安装Cpolar3. 配置Swagger Editor公网地址4. 远程访问Swagger Editor5. 固定Swagger Editor公网地址 Swagger Editor本地接口文档公网远程访问 Swagger Editor是一个用于编写OpenAPI规范的开源编…

四、虚拟机网络配置

目录 1、VMware网卡配置模式 1.1 桥接模式 1.2 NAT模式 1.3 仅主机模式 ​​​​​​​2、编辑虚拟机的网络编辑器 ​​​​​​​3、编辑Window的虚拟网卡 ​​​​​​​4、修改IP地址为静态 4.1 查看网卡名字 4.2 编辑修改网卡IP地址的配置文件 4.3 重启网络: 4.…

如何选择靠谱的安防监控系统?优秀的安防智能系统应该具备哪些特点?

随着科技的不断进步&#xff0c;安防智能系统变得越来越重要。当前的安防监控市场系统五花八门&#xff0c;用户该如何选择性比价高、功能又靠谱的平台&#xff1f;一个优秀的安防智能系统应该具备哪些特点&#xff1f;今天我们来针对这个话题讨论和分享一下。 1、高效性&…

Flutter页面刷新失败?看看是不是这个原因

文章目录 问题描述解决办法在控件A中定义回调函数在页面中使用控件A 原因分析回顾问题原因分析 setState使用注意事项上下文正确性异步更新避免深层嵌套避免频繁调用避免在 build 方法中调用避免在 dispose 方法中调用 问题描述 我用flutter开发了一个页面&#xff0c;页面上有…