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);