16

复制数组有两种不同的方法,使用 Array.concat 或 Array.slice,

例如:

var a = [1, 2, 3],

    c1 = [].concat(a),

    c2 = a.slice(0);

哪种方式更好?

4

2 回答 2

12

为清楚起见,您应该使用记录在案的方法来获取数组(或其一部分)的副本:

var c2 = a.slice(0);

在任何体面的浏览器上,性能差异都可以忽略不计,因此清晰度应该是决定因素。

于 2013-07-23T07:24:35.083 回答
5

根据jsperf.com 的测试,在性能方面,这两个选项之间的差异很小。

于 2013-07-23T07:13:20.057 回答