为了账号安全,请及时绑定邮箱和手机立即绑定

合并数组用 concat 还是 扩展运算符比较好?

合并数组用 concat 还是 扩展运算符比较好?

慕婉清6462132 2019-01-05 18:19:33
let arr1 = [1, 2];let arr2 = [3, 4];// concatarr1 = arr1.concat(arr2);// 扩展运算符arr1 = [...arr1, ...arr2];// 或者arr1.push(...arr2);哪种更好,为什么?性能?
查看完整描述

1 回答

?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

先看下你说的这三种方式的差别:

这个差别的话存在俩中环境中:

  • 第一种,你的实际使用环境还是es5的环境,那么你转一下看看babel怎么处理的;

你用babel转成es5看看扩展运算符

[...arr1, ...arr2] ==> [].concat(arr1, arr2)

arr1.push(...arr2) ==> arr1.push.apply(arr1, arr2)

这种差别的情况下可以看到,
好处:扩展运算符看起来更直观,可读性更好,调用的api更少,简洁。
性能:可能需要你做一下评估,我没做这个,

  • 第二种: 你的实际使用环境已经支持了扩展运算符,就是说原生实现了这个操作符,那么

好处: 大家都用这个,提升你在其他前端心中的形象,你是一个与时俱进的人,不会被淘汰。。。
性能: 找支持这个语法的环境去测一下,比如node环境

另外说一下,性能的话,你也可以通过一些常用的比较方法来判断。
比如可以通过对一个数组连接10000万个元素看看不同方式花费的时间,去评估一下;
这个事情你自己可以做一下。


查看完整回答
反对 回复 2019-01-05
  • 1 回答
  • 0 关注
  • 1042 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信