前端基础学习

数组之map方法

2020-03-16  本文已影响0人  小雪洁
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
    </body>
    <script>
        let users=[
            {name:"hxj",age:30},
            {name:"ydc",age:28},
            {name:"hwx",age:34},
        ];
        let newUser=users.map(function(item,index,arr){
            //return 1; // [1, 1, 1] 返回什么新数组就接什么 
            //return `名字简称${item.name}`;
            return  item.age++;
        });
        console.log(newUser); //["名字简称hxj", "名字简称ydc", "名字简称hwx"]
        console.log(users);//原数组元素age都增了1,因为原数组元素是引用类型
        //注意使用arr.map(fucntion(item,index,arr){});时
        //如果数组元素是引用类型,通过map方法可以改变数组的元素,
        //也就是说元素是引用类型的使用map方法不用再定义变量接收返回值,直接就会改变数组值
        //如果数组元素是基本类型,通过map方法无法改变原数组内的元素,需要有个变量来接收返回值
        //这个原理和for-of  forEach()一样
        let a=[1,2,3,4,5];
        let newa=a.map(function(item){
            return item++;
        });
        console.log(a);//[1, 2, 3, 4, 5]
        //如果数组元素是对象类型,但是
        //我不想改变原数组的元素值,就想返回一个经过处理的结果
        let users0=[
            {name:"hxj",age:30},
            {name:"ydc",age:28},
            {name:"hwx",age:34},
        ];
        let newuser0 =users0.map(function(item){
            return{
                name:item.name,
                age:item.age,
                job:"teacher"
            };
        });
        console.table(users0);//原数组不发生变化
        console.table(newuser0);//新数组是经过处理的
    </script>
</html>

上一篇 下一篇

猜你喜欢

热点阅读