数组之map方法

作者: 小雪洁 | 来源:发表于2020-03-16 14:01 被阅读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>
    
    

    相关文章

      网友评论

        本文标题:数组之map方法

        本文链接:https://www.haomeiwen.com/subject/emsgehtx.html