// 深拷贝数组的示例代码
function deepCopyArray(arr) {
// 如果输入不是数组,直接返回
if (!Array.isArray(arr)) {
return arr;
}
// 创建一个新的空数组
let newArr = [];
// 遍历原数组中的每个元素
for (let i = 0; i < arr.length; i++) {
// 如果元素是对象或数组,则递归调用深拷贝函数
if (typeof arr[i] === 'object' && arr[i] !== null) {
newArr[i] = deepCopyArray(arr[i]);
} else {
// 否则直接赋值
newArr[i] = arr[i];
}
}
return newArr;
}
// 示例使用
let originalArray = [1, [2, 3], { a: 4 }, 5];
let copiedArray = deepCopyArray(originalArray);
console.log(copiedArray); // 输出: [1, [2, 3], { a: 4 }, 5]
// 修改原始数组中的嵌套数组和对象,验证深拷贝是否成功
originalArray[1].push(6);
originalArray[2].a = 7;
console.log(originalArray); // 输出: [1, [2, 3, 6], { a: 7 }, 5]
console.log(copiedArray); // 输出: [1, [2, 3], { a: 4 }, 5]
deepCopyArray
函数用于深拷贝一个数组。它会递归地遍历数组中的每个元素,并根据元素的类型进行处理。newArr
来存储拷贝后的元素。deepCopyArray
进行深拷贝;否则直接赋值。上一篇:js jsonp
下一篇:js 对象转数组
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站