(一)数组Array
1.定义:
用单独的变量名存储一系列的值
2.创建
①构造函数方法
let 数组名称 = new Array(size);//size表示数组存放的元素总和
注意:()内写一个数字表示数组的个数,写多个内容是数组的元素,每个元素之间用逗号隔开
②字面量的方法(语法糖)
let 数组名称 = [ ] 字面量
注意:[ ]内写一个数字表示数组的个数,写多个内容是数组的元素,每个元素之间用逗号隔开
3.赋值
①可以先声明后赋值,也可以同时声明和赋值
②赋值的元素之间无间隙的是密集数组,有间隙是稀疏数组,稀疏数组中没有赋值的元素初始值是undefined
//要点:①索引 / 下标从0开始,数组的length 从1开始,表示数组的个数 / 长度
②读取元素:数组名[索引]
③遍历 / 循环 数组每个元素,可以用for 变量的值可以修改
也可以用for in ,变量的值不可以修改,对于密集数组这两种方法没有差别,
对于稀疏数组for 会遍历每一个,没有值的是undefined,而for in 只能遍历有值的元素*/
4.属性length
let arr = ["a",'b','c',8,true,[1,2],function(){console.log(111)}];
//1.数组中的元素可以任意的数据类型
console.log(arr);
console.log(arr[5][1]);
/*2.当数组的某个元素也是一个数组时,这个数组叫二维数组,
二维数组内的某个元素仍是一个数组时,这个数组叫三维数组,以此类推
3.要读取多维数组中的元素:一维数组名[索引] [索引] [索引]...有几维就有几个[]*/
arr[6]()//4.数组的某个元素时函数声明时,数组名[索引]来获取函数体,调用函数:数组名[索引]()
console.log(arr.length);//5.数组的长度(元素的个数)
arr.length = 30;
console.log(arr);//6.数组的length是可以改写的
5.方法
功能 | 具体功能 | 方法 | 示例 |
---|---|---|---|
添加 | 在开头增加 | 数组名.unshift(要增加的内容,可以是1个或多个) | arr.unshift(“a”,“b”);//在arr开头添加"a" ,“b” |
在末尾增加 | 数组名.push(要增加的内容,可以是1个或多个) | arr.push(100);//在arr结尾添加100 法一 用push方法 | |
用赋值法 | arr[arr.length] = 100; //在arr结尾添加100 | ||
在任意位置添加 | 数组名.splice(要添加的位置索引,0,要增加的内容,可以是1个或多个) | // arr.splice(1,0,‘x’);//在1和2之间加字符串X [1,x,2,3] | |
删除 | 在开头删除 | 数组名.shift() 只能删掉第一个 | arr.shift();//删掉了1 |
在末尾删除 | 数组名.pop() 只能删掉最后一个 | arr.pop();//法1 | |
还可以减少数组的length | arr.length = arr.length - 1;//法2 | ||
在任意位置删除 | 数组名.splice(要删除元素的索引,要删除的个数) | 删除’a’,‘b’ //fruit.splice(0,1) //[3, 8, “b”, 9, 2, empty, 7] | |
改写 | 改写 | 赋值 | 将2改为m arr[1] = ‘m’; 法1 |
改写 | 数组名.splice(要改写的元素的索引,要删除的个数,要添加的内容) | 将3,4改为x,y // arr.splice(2,2,‘x’,‘y’); | |
倒序 | 倒序 | 数组名.reverse()注意是方法 ()不能掉 | arr.reverse() console.log(arr)*/ |
排序 | 排序 | 数组名.sort() 对字符串元素排序 按照a-z顺序的首字母,首字母一样的比较第二位 以此类推 | var fut = [“apple”,“pear”,“orange”,“banner”]; // console.log(fut); |
对纯数字数组排序 数组名.sort(function(a,b){return a-b;}); 从小到大 b-a从小到大* | num.sort(function(a,b){return a-b;}); | ||
总结:会改变原数组的方法①unshift(),②push(),③splice(),④shift(),⑤pop(),⑥reverse(),⑦sort()
不改变原数组的方法
①join(),②concat(),③slice(),④indexOf(),⑤lastIndexOf(),
名称 | 功能 | 方法 | 示例 |
---|---|---|---|
join()分隔为字符串 | 分隔符字符串 | 数组名.join(“分隔符”) | let arr = [1,2,3,4]; // let newArr = arr.join("–"); // console.log(arr); //[1,2,3,4] // console.log(newArr); //“1–2--3–4” // console.log(typeof newArr); |
concat() 拼接为新数组 | 拼接多个数组为一个新的数组 | 数组名1.concat(数组名2,数组名3 …) | let arr1 = [1,2,3]; // let arr2 = [‘a’,‘b’,‘c’]; // let arr3 = [‘你’,‘我’,‘他’]; // console.log(arr2.concat(arr1,arr3)); |
slice() 截取部分为新数组 | 从原数组中截取一部分元素为一个新数组。 | 数组名.slice(开始的索引,结束的索引) | let arr1 = [1,2,3,4,5,6,7]; // console.log(arr1.slice());let arr1 = [1,2,3,4,5,6,7]; // console.log(arr1.slice()); |
indexOf() 查找指定内容的索引 | 返回要查找的内容的索引,没有找到返回-1. | 数组名.indexOf(要查找的内容,从哪个索引开始找) | let arr2 = [‘a’, ‘b’, ‘c’, , 4, 5, 6, 7, ‘b’]; console.log(arr2.indexOf(“b”)) // 1 |
lastIndexOf() 从后往前 查找指定内容的索引 | 从后往前找,返回要查找的内容的索引,没有找到返回-1。 | 数组名.lastIndexOf(要查找的内容,从哪个索引开始找) | let arr2 = [‘a’, ‘b’, ‘c’, , 4, 5, 6, 7, ‘b’]; console.log(arr2.LastndexOf(“b”)) //8 |