我的开发中需要用到所以就分享下咯,如有不足的地方请指教
这种函数是为了复制数组或对象后操作其不会影响到原数组或对象
数组和对象混合也可以复制,比如对象数组
/**复制数组或对象
* @param source 数组或对象
* @param state 类型object或arr
*/
function copyLinearArray(source) {
var sourceCopy = [],
objectCopy = {}
if (source.constructor === Object) { //如果是对象
for (let item in source) objectCopy[item] = source[item].constructor === Object ? copyLinearArray(source[item]) : source[item];
return objectCopy;
} else { //如果是其他数组
for (let item in source) sourceCopy[item] = source[item].constructor === Object ? copyLinearArray(source[item]) : source[item];
return sourceCopy;
}
}
只是数组可以直接用Array.slice(0)
我只是个菜鸟新手,有一些小错误,已经修改
运行结果
如有不足请指教