下面我来给你讲解一下 JavaScript 数组操作(创建、元素删除、数组的拷贝)的完整攻略。
创建数组
数组是 JavaScript 中的一种特殊的数据类型,用逗号分隔的多个值,可以使用数组字面量语法创建数组,也可以使用 Array 构造函数来创建数组。
数组字面量语法创建数组
可以使用方括号 [] 创建一个空数组,并用逗号分隔元素。例如:
let arr1 = []; // 创建空数组
let arr2 = [1, 2, 3]; // 创建有多个元素的数组
Array 构造函数创建数组
使用 Array 构造函数可以创建一个包含指定元素的数组。例如:
let arr3 = new Array(); // 创建空数组
let arr4 = new Array(1, 2, 3); // 创建有多个元素的数组
元素删除
删除数组元素有两种方法,一种是使用 delete
操作符,另一种是使用 splice()
方法。
delete 操作符删除元素
delete
操作符用于删除对象的某个属性,也可以用来删除数组中的元素。例如:
let arr = [1, 2, 3, 4];
delete arr[2]; // 删除第3个元素,即3
console.log(arr); // [1, 2, undefined, 4]
注意,delete
只是将数组中对应元素的值变为 undefined
,数组的长度并没有变化。
splice() 方法删除元素
splice()
方法用于向/从数组中添加/删除项目,然后返回被删除的项目。例如:
let arr = [1, 2, 3, 4];
arr.splice(2, 1); // 从数组的第3个元素开始,删除一个元素
console.log(arr); // [1, 2, 4]
splice()
方法的第一个参数为开始位置,第二个参数为删除的数量。
数组的拷贝
在 JavaScript 中,数组有两个简单的拷贝方式,一种是浅拷贝,一种是深拷贝。
浅拷贝
浅拷贝是指将原数组的引用复制到了一个新的数组中,而两个数组实际上继续引用相同的对象。因此,如果修改一个对象,两个数组中此对象的值也会同步修改。例如:
let arr1 = [1, 2, 3];
let arr2 = arr1;
arr2[0] = 0;
console.log(arr1); // [0, 2, 3]
console.log(arr2); // [0, 2, 3]
深拷贝
深拷贝是指将原数组的所有元素按照值传递的方式复制到了新的数组中,两个数组各自引用不同的对象。因此,修改一个数组中的元素不会影响另一个数组。例如:
let arr1 = [1, 2, [3, 4]];
let arr2 = JSON.parse(JSON.stringify(arr1));
arr2[2][0] = 0;
console.log(arr1); // [1, 2, [3, 4]]
console.log(arr2); // [1, 2, [0, 4]]
需要注意的是,如果数组中存在 Date、function、RegExp 等引用类型,使用深拷贝会失败,需要使用其他方式进行处理。
以上就是 JavaScript 数组操作(创建、元素删除、数组的拷贝)的攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javascript数组操作(创建、元素删除、数组的拷贝) - Python技术站