08年一家公司JS面试题,职位是javascript工程师(赴google)
面试官问我如何克隆一个数组,当时想了下js的Object没有clone方法,java的Object有。
那怎么得到一个新数组呢?
我当时回答:用一个loop将源数组元素依次push到新数组中。这是最简单的方法,但显然不是面试官想要的答案。
最后告知我:利用Array的slice方法。示例如下:
var ary = [1,2,3];//源数组 var ary2 = ary.slice(0);//克隆一个新数组 console.log(ary2); /* 改变ary2,不会影响到ary,说明的确是两个数组而非引用 * 如果是两个引用,则改变其中任何一个都是对同一个数组操作 */ ary2[0] = 10; console.log(ary2); console.log(ary);