map()的用法

news2025/1/12 10:11:06

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')

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

设计师必看!揭秘顶级外卖平台APP背后的设计原则

在数字化和移动互联网盛行的今天,外卖平台APP已经成为我们生活中的重要组成部分。作为设计师,你是否也曾思考过如何通过设计优化用户体验,提升品牌形象,甚至直接推动业务增长?今天,我们将向你揭示顶级外卖平…

Python内置类属性__cmp__属性的使用教程

概要 Python是一种简单而强大的编程语言,它提供了许多内置的类和功能,以帮助开发人员更轻松地实现各种任务。其中一个内置类属性是__cmp__,它允许我们在自定义类中实现对象之间的比较操作。本文将详细介绍__cmp__属性的使用方法,…

DistilBERT模型训练实战

LLM似乎正在接管世界,但许多人仍然不真正理解他们是如何运作的。 我从事机器学习工作已有几年,并且对自然语言处理和最近的进展非常着迷。 尽管我阅读了大部分随附的论文,但训练这些模型对我来说仍然是一个谜,这就是为什么我决定…

CSS中的非布局样式+CSS布局 前端开发入门笔记(十一)

CSS中的非布局样式 在CSS中,非布局样式是指那些不会直接影响页面布局的样式。这些样式主要关注的是元素的颜色、字体、背景、边框、阴影等视觉效果。以下是一些常见的非布局CSS样式: 文本样式:包括字体(font-family)…

以太网PHY,MAC接口

本文主要介绍以太网的 MAC 和 PHY,以及之间的 MII(Media Independent Interface ,媒体独立接口)和 MII 的各种衍生版本——GMII、SGMII、RMII、RGMII等。 简介 从硬件的角度看,以太网接口电路主要由MAC(M…

GAN:WGAN-GP-带有梯度惩罚的WGAN

论文:https://arxiv.org/pdf/1704.00028.pdf 代码:GitHub - igul222/improved_wgan_training: Code for reproducing experiments in "Improved Training of Wasserstein GANs" 发表:2017 WGAN三部曲的终章-WGAN-GP 摘要 WGAN在…

YOLOv5全网独家首发改进:SENetv2,Squeeze-Excitation模块融合Dense Layer,效果秒杀SENet

💡💡💡本文自研创新改进:SENet v2,针对SENet主要优化点,提出新颖的多分支Dense Layer,并与Squeeze-Excitation网络模块高效融合,融合增强了网络捕获通道模式和全局知识的能力 推荐指数:五星 收录 YOLOv5原创自研 https://blog.csdn.net/m0_63774211/catego…

GPT市场将取代插件商店 openAI已经关闭plugins申请,全部集成到GPTs(Actions)来连接现实世界,可以与物理世界互动了。

Actions使用了plugins的许多核心思想,也增加了新的特性。 ChatGPT的"Actions"与"Plugins"是OpenAI在GPT模型中引入的两种不同的功能扩展机制。这两种机制的目的是增强模型的功能,使其能够处理更多样化的任务和请求。下面是对两者的比…

应用于智慧工厂的AI边缘计算盒子+AI算法软硬一体化方案

智慧工厂解决方案,传统工厂/生产管理,普遍存在运营粗放、效率低、应变能力差、安全隐患突出、资源不平衡等“行业症状”; 以英码产品为核心的智能化场景解决方案,可以从本质上根治这些“症状”,如企业可利用智能预测系…

RocketMQ Copilot 一款面向 Apache RocketMQ 的智能辅助运维系统

一、RocketMQ简介 ocketMQ是阿里巴巴研发的一款分布式消息中间件,后开源给Apache基金会,成为apache的顶级开源项目。它具有高性能、高可靠、高实时和分布式的特点。RocketMQ主要应用于解决应用耦合,消息分发,流量削锋等问题。 R…

七年 4 个阶段:滴滴可观测架构演进与实践

一分钟精华速览 在当前阶段,可观测性的建设并没有统一的执行路径。每家公司会根据自身的业务需求、运营模式和规模,形成一套独特的实践方案。为了应对业务规模的扩大和需求的变化,可观测团队必须持续优化和升级其架构,并始终保证…

2023年中国金融科技研究报告

第一章 行业概况 1.1 定义 金融科技(FinTech, Financial Technology)代表了金融和技术的交汇。这一领域虽然处于发展的初期阶段,但已经展现出深远的影响力。金融科技的业务模式多样,涵盖了从传统金融服务的数字化转型到新兴技术…

亚马逊云与生成式 AI 的融合——生成式AI的应用领域

文章目录 前言亚马逊云科技增强客户体验聊天机器人和虚拟助手亚马逊云科技 鸿翼:提供精准检索和问答,显著提升全球化售后服务体验AI 赋能的联络中心智能导购&个性化推荐智慧数字人 提升员工生成力和创造力对话式搜索亚马逊云科技 西门子&#xff1…

mongoDB非关系型数据库学习记录

一、简介 1.1Mongodb是什么 MongoDB是一个基于分布式文件存储的数据库,官方地址https://www.mongodb.com/ 1.2数据库是什么 数据库(DataBase)是按照数据结构来组织、存储和管理数据的应用程序 1.3数据库的作用 数据库的主要作用就是管理数据,对数据进行增©、删(d)、…

Node-red

Node-Red 什么是Node-redNode-red的特点 Node-red的Windows安装安装Node.js安装包下载安装包安装安装检查 安装Node-red安装Note-red运行Note-red 什么是Node-red Node-RED 是一种编程工具,用于以新颖有趣的方式将硬件设备、API 和在线服务连接在一起。 Node-RED 是…

【【Micro Blaze按键中断实验】】

Micro Blaze按键中断实验 中断是一种当满足要求的突发事件发生时通知处理器进行处理的信号。中断可以由硬件处理单元和外 部设备产生,也可以由软件本身产生。对硬件来说,中断信号是一个由某个处理单元产生的异步信号,用 来引起处理器的注意。…

如何利用 Snapchat 制定数字营销战略

近年来,Snapchat已成为数字营销领域的重要参与者。Snapchat 已经发展成为一种复杂的营销工具,被各种公司用来与年轻受众互动,此前它最初被认为是一个专门供青少年发布快速、转瞬即逝内容的平台。Snapchat 上的日活跃用户数量超过 2.8 亿&…

CMD命令切换至D盘

1.使用快捷键winr进入如下所示界面: 2.在框内输入CMD 后点击确定,即可进入如下界面; 3.输入d: 后按下enter即可转换成功; 补充一些CMD命令: 1. appwiz.cpl:程序和功能 2. calc:启动计算器 3.…

分布式仿真SNN的思考(二)

经过漫长的思考,我依然无法为昨天的第二个问题找到合适的解决方法。然后今天依然对整体的放着进行思考,找出规律再去写代码。考虑SNN网络: 那么他的邻接表gabal_adj: 0 1 2 1 3 2 1 3 3 4 5 4 6 5 2 6 5 3 假设有两…

SSL证书为什么要收费?

SSL证书之所以需要收费,主要涉及以下几个方面的原因: 验证过程成本 SSL证书颁发机构(CA,Certificate Authority)必须执行验证过程,以确保证书请求者的身份和域名所有权。这些验证程序需要时间和资源&…