首先,我们得知道 数组 是什么?
数组 即有序的元素序列,简而言之就是一组数据的集合。其表现形式就是内存中的一段连续的内存地址。
特点:数组定义时,无需指定数据类型、无需指定数组长度、可以存储任何数据类型的数据。
创建方式:
1. 使用 Array 构造函数:
let arr1 = new Array(); //创建一个空数组
let arr2 = new Array(20); // 创建一个 length 为 20 的数组
let arr3 = new Array("George","John","Thomas"); // 创建一个包含3个字符串的数组
2. 使用数组字面量表示法:
let arr1 = []; //创建一个空数组
let arr2 = [20]; // 创建一个 length 为 20 的数组
let arr3 = ["George","John","Thomas"]; // 创建一个包含3个字符串的数组
获取数组长度: arr.length;
数组常用几种方法: push()和pop()、shift() 和 unshift()、slice()和 splice()、join()、concat()、reverse()、
1. push()和pop()
push(): 向数组的末尾添加一个或多个元素,并返回新的长度。
let arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
document.write(arr.push("James"));
document.write(arr); // 输出 George,John,Thomas,James
pop():用于删除并返回数组的最后一个元素。
let arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
document.write(arr.pop() + "<br />"); // 输出 Thomas
document.write(arr); // 输出 George,John
2. shift() 和 unshift()
shift():用于把数组的第一个元素从其中删除,并返回第一个元素的值。
let arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
document.write(arr.shift() + "<br />"); // 输出 George
document.write(arr); // 输出 John,Thomas
unshift(): 向数组的开头添加一个或更多元素,并返回新的长度 。
let arr = new Array()
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
document.write(arr.unshift("William") + "<br />");
document.write(arr); // 输出 William,George,John,Thomas
注释: push()和pop()、shift() 和 unshift() – 都是直接修改数组,而不是创建一个新的数组,会改变数组长度。
3. slice() 和 splice()
slice(): 从已有的数组中返回选定的元素。 并不会修改数组,而是返回一个子数组。
let arr = ["George","John","Thomas","James","Adrew","Martin"];
document.write(arr.slice(2,4) + "<br />") // Thomas,James
document.write(arr) // George,John,Thomas,James,Adrew,Martin
splice(): 用于添加或删除数组中的元素。会修改数组
用法: arrayObject.splice(index,howmany,item1,…,itemX)
参数:
index: 规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
howmany: 要删除的项目数量。如果设置为 0,则不会删除项目。如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素。
item: 要添加到数组的新元素。
let arr = ["George","John","Thomas","James","Adrew","Martin"];
document.write(arr.splice(2,3) + "<br />") // 输出删除的 Thomas,James,Adrew
document.write(arr) // 输出 George,John,Martin
let arr = ["George","John","Thomas","James","Adrew","Martin"];
document.write(arr.splice(2,3,'Andy') + "<br />") // 输出删除的Thomas,James,Adrew
document.write(arr) // 输出 George,John,Andy,Martin
4. join(): 用于把数组中的所有元素放入一个字符串。可使用分隔符进行分隔。
let arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
document.write(arr.join()); // 输出 George,John,Thomas
可使用分隔符来分隔数组中的元素:
document.write(arr.join(“.”)); // 输出 George.John.Thomas
5. concat(): 用于连接两个或多个数组。该方法不会改变现有的数组。
let a = [1,2,3];
document.write(a.concat(4,5)); // 输出 1,2,3,4,5
let arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
let arr2 = new Array(3)
arr2[0] = "James"
arr2[1] = "Adrew"
arr2[2] = "Martin"
document.write(arr.concat(arr2)) ; // 输出 George,John,Thomas,James,Adrew,Martin
6. reverse(): 用于颠倒数组中元素的顺序。
let arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
document.write(arr + "<br />"); // 输出 George,John,Thomas
document.write(arr.reverse()); // 输出 Thomas,John,George