如何在JavaScript的Array.map()中将子数组展开为箭头函数的具名参数?
如何在JavaScript的Array.map()中将子数组展开为箭头函数的具名参数?
当然可以实现啦!你想要的这种写法,刚好能用JavaScript的参数解构赋值来搞定,这也是解构特性很实用的一个场景。
先看你的原数组:
const A = [ [1, 2], [3, 4], [5, 6] ];
你预想的map调用写法完全可行,只需要在回调函数的参数位置用方括号把具名参数包起来,也就是对子数组做解构:
const B = A.map(([a, b]) => a + b);
这样写之后,每个子数组的第一个元素会自动赋值给参数a,第二个元素赋值给b,和你想要的效果完全一致,而且比e[0] + e[1]的写法可读性更高——尤其是当子数组元素更多时,具名参数能让代码逻辑清晰很多。
验证一下结果,执行这段代码后,B的值会是[3, 7, 11],和用索引写法得到的结果完全相同。
另外补充个小知识点:如果你的子数组可能包含更多元素,还可以结合剩余参数语法来处理,比如([a, b, ...rest]) => { /* rest会包含子数组中除前两个之外的所有元素 */ },不过对你当前的场景来说,基础的解构就足够用啦。
备注:内容来源于stack exchange,提问作者vlad_tepesch
相关产品推荐
相关产品推荐

