08年一家公司JS面試題,職位是javascript工程師(赴google) 面試官問我如何複製一個數組,當時想了下js的Object沒有clone方法,java的Object有。 那怎麼得到一個新陣列呢? 我當時回答:用一個loop將來源數組元素依序push到新數組中。這是最簡單的方法,但顯然不是面試官想要的答案。 最後告知我:利用Array的slice方法。範例如下: 複製程式碼 程式碼如下: var ary = [1,223 ];//來源陣列var ary2 = ary.slice(0);//複製一個新陣列console.log(ary2); /* 改變ary2,不會影響到ary,說明的確是兩個陣列而非引用 * 如果是兩個引用,則改變其中任何一個都是對同一個陣列運算 */ ary2[0] = 10; console.log(ary2); console.log(ary);