方法:測試
function deepCopy (data) { let dataTmp = undefined if (data === null || !(typeof data === 'object')) { dataTmp = data } else { dataTmp = data.constructor.name === 'Array' ? [] : {} for (let key in data) { dataTmp[key] = deepCopy(data[key]) } } return dataTmp }
測試用例:spa
let test = [1, 2, [3, { name: { first: '牛頓', last: ['艾薩克', '物理學家'] } }]] let result = deepCopy(test) result[2][1].name.last[1] = '理論物理學家' console.log(test, result)
結果:code