有两种不同的方法可以复制一个数组,使用Array.concat或Array.slice,
例如:
var a = [1, 2, 3],
c1 = [].concat(a),
c2 = a.slice(0);
哪种方式更好?
有两种不同的方法可以复制一个数组,使用Array.concat或Array.slice,
例如:
var a = [1, 2, 3],
c1 = [].concat(a),
c2 = a.slice(0);
哪种方式更好?
为了清晰起见,您应该使用在文档中记录的方法来复制数组(或其部分):
var c2 = a.slice(0);
在任何一个好的浏览器上,性能差异都将是可以忽略不计的,因此清晰度应该是决定因素。
slice()
方法返回一个新的数组对象,这一对象是从 begin
到 end
(不包括 end
)的原数组的浅拷贝。原始数组不会被修改。” - Alnitak
arr.slice()
可能更快,只需进行基准测试。http://jsperf.com/duplicate-array-slice-vs-concat/3 - AllTooSirc3 = a.concat()
是怎么样的呢? - Doin