js中map函数

map 不修改调用它的原数组本身(当然可以在 callback 执行时改变原数组)

var numbers = [1, 4, 9];
var roots = numbers.map(Math.sqrt);
// roots的值为[1, 2, 3], numbers的值仍为[1, 4, 9]

以上针对数组基本类型;

当数组中包含对象时,测试结果如下:

let tea = [1,2,{name:true}];
let arr4 = tea.map((it,id)=>{
    if(id===2){
        it.name = 'edit'
    }
})

在这里插入图片描述
我们return 试一下:

let tea = [1,2,{name:true}];
let arr4 = tea.map((it,id)=>{
    if(id===2){
        return it.name = 'edit'
    }
    return it
})

在这里插入图片描述
如果直接return应该就可以带上属性名了:

let tea = [1,2,{name:true}];
let arr4 = tea.map((it,id)=>{
	if (id===2) {
        it.name = 'edit'
    }
     return it
})

当我们改变原数组对象中的属性值时,新数组的属性值也改变,相当于浅拷贝;

结论:map的使用场景(上面的例子演示了map返回后的结果是否赋值给一个新数组,实际上要用map最好是要有新的数组来接收返回值,filter之类的函数同理,否则用forEach会更合适些,当然在使用forEach时需要注意forEach循环是无法使用return, break之类的语句跳出的,如果需要使用break跳出循环,可以使用原生的 for语句 或者ES6的 for-of ):

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值