JavaScript 中Map及Foreach遍历对原始数据影响

function testMap() {
        // map<U>(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[];
        // forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void;
        // value:循环遍历的每一项,基础类型值调用,对象类型引用调用
        // index:遍历中的下标
        // array:原始数组
        // 基础类型Map方法参数为值引用
        var baseArr = [1, 2, 3];
        console.log("基础类型-前:" + baseArr);//1,2,3
        baseArr.map(item => {
            item = item + 1;
        })
        console.log("基础类型-后:" + baseArr);//1,2,3

        //基础类型Map方法参数为应用调用
        var objectArr = [{name: "name1"}, {name: "name2"}];
        console.log("引用类型-前:" + JSON.stringify(objectArr));//[{"name":"name1"},{"name":"name2"}]
        var newObjectArr = objectArr.map(item => {
            item.name = item.name + "new";
            return item;
        });
        console.log("引用类型-后:" + JSON.stringify(objectArr));//[{"name":"name1new"},{"name":"name2new"}]
        console.log("引用类型-新-前:" + JSON.stringify(newObjectArr));//[{"name":"name1new"},{"name":"name2new"}]
        newObjectArr.map(item => {
            item.name = item.name + "add";
            return item;
        })
        console.log("引用类型-新-后:" + JSON.stringify(newObjectArr));//[{"name":"name1newadd"},{"name":"name2newadd"}]
        // 使用foreach,在引用类型的时候也会修改原始数据
        objectArr.forEach((item, index, arr) => {
            item.name = item.name + "forEach";
        })
        console.log("引用类型-forEach-后:" + JSON.stringify(objectArr));//[{"name":"name1newaddforEach"},{"name":"name2newaddforEach"}]

    }

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值