Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

js 深拷贝数组

作者:战天独尊   发布日期:2025-06-25   浏览:100

// 深拷贝数组的示例代码

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]

解释说明:

  1. 函数定义deepCopyArray 函数用于深拷贝一个数组。它会递归地遍历数组中的每个元素,并根据元素的类型进行处理。
  2. 非数组处理:如果传入的参数不是数组,则直接返回该参数,避免不必要的处理。
  3. 创建新数组:创建一个新的空数组 newArr 来存储拷贝后的元素。
  4. 遍历与递归:遍历原数组中的每个元素,如果元素是对象或数组,则递归调用 deepCopyArray 进行深拷贝;否则直接赋值。
  5. 示例使用:通过一个包含嵌套数组和对象的示例数组来展示深拷贝的效果,并验证修改原始数组不会影响拷贝后的数组。

上一篇:js jsonp

下一篇:js 对象转数组

大家都在看

js 数组对象排序

js 数组删掉第一个值

js fill

js 数组复制

js 复制数组

js 数组拷贝

js 对象转数组

js 深拷贝数组

js jsonp

js 获取当前页面url

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站