[[1, 2], [3, 4]].map(([a, b]) => a + b)返回[3,7]的原因

要理解[[1, 2], [3, 4]].map(([a, b]) => a + b)这段代码
首先理解一下map内部的运行机制

思考以下代码

 	let arr = ['val1', 'val2', 'val3']

    arr.map((item, index) => {
      console.log(item);  // 每次遍历打印: val1 , val2 , val3
      console.log(index); // 每次遍历打印: 1 , 2 , 3
    })

但map的参数不是const声明的所以可以对他进行赋值

 	let arr = ['val1', 'val2', 'val3']

    arr.map((item, index) => {
      item = index;
      console.log(item);  // 每次遍历打印: 1, 2, 3
      console.log(index); // 每次遍历打印: 1 , 2 , 3
    })

理解map 的运行原理之后回到题目中的代码

[[1, 2], [3, 4]].map(([a, b]) => a + b)    

题目中的代码也可以写成以下形式便于理解

let arr1 = [1,2];
let arr2 = [3,4];
[arr1,arr2].map([a,b] =>{ //此时的a相当于1,b相当于2 
	return  a + b
})

由于解构赋值 arr1 = [a , b] 此时等号后面相当于声明了两个变量a和b 并且给他们赋了新值覆盖了原先的值

最终相当于以下代码

    var arr1 = [1, 2];
    var arr2 = [3, 4];
    [arr1, arr2].map(arr => {
      var a = arr[0];
      var b = arr[1];
      return a + b
    })
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值