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

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值