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

js 数组拷贝

作者:寂寞味道   发布日期:2025-03-19   浏览:314

// 深拷贝数组示例

// 使用 JSON.parse 和 JSON.stringify 进行深拷贝
const originalArray = [1, 2, { a: "b" }, [3, 4]];
const deepCopiedArray = JSON.parse(JSON.stringify(originalArray));

console.log(deepCopiedArray); // [1, 2, { a: "b" }, [3, 4]]
console.log(deepCopiedArray === originalArray); // false
console.log(deepCopiedArray[2] === originalArray[2]); // false

// 浅拷贝数组示例

// 使用 slice 方法进行浅拷贝
const shallowCopiedArray = originalArray.slice();

console.log(shallowCopiedArray); // [1, 2, { a: "b" }, [3, 4]]
console.log(shallowCopiedArray === originalArray); // false
console.log(shallowCopiedArray[2] === originalArray[2]); // true (对象和数组引用相同)

// 使用扩展运算符进行浅拷贝
const spreadCopiedArray = [...originalArray];

console.log(spreadCopiedArray); // [1, 2, { a: "b" }, [3, 4]]
console.log(spreadCopiedArray === originalArray); // false
console.log(spreadCopiedArray[2] === originalArray[2]); // true (对象和数组引用相同)

解释说明:

  • 深拷贝:创建一个全新的数组,其中的嵌套对象和数组也会被全新复制。修改拷贝后的数组不会影响原数组。
  • 浅拷贝:只复制数组的第一层元素,对于嵌套的对象或数组,仍然共享相同的引用。修改嵌套对象或数组会影响原数组。

JSON.parse(JSON.stringify(...)) 是一种简单的深拷贝方法,但需要注意它不能处理函数、undefinedDate 对象等特殊类型。

上一篇:js 对象转数组

下一篇:js 复制数组

大家都在看

js 数组对象排序

js 数组删掉第一个值

js fill

js 数组复制

js 复制数组

js 数组拷贝

js 对象转数组

js 深拷贝数组

js jsonp

js 获取当前页面url

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

Laravel 中文站