文章目录
一.数组
- 概念:就是数据,数组是一种数据的有序集合,数组其实也是对象,只是存储数据的形式不一样,但是类型是一样的,按照次序排列的一组值,其中每一个值都有一个索引值(js自动分配的)。当我们需要存储一系列的值的时候,通常都会使用数组,无论是查询还是存储都非常的便捷。
[1, 2, 3, 'hello', true, false]
二.创建数组的方式
- 数组就是一个
[]
- 在
[]
里面存储着各种各样的数据,按照顺序依次排好 - 数组在创建时,就可以填充数据
2.1数组注意
- 数组可以存储任何的数据类型。
- 数组的内容叫元素,用逗号隔开,会给每一个存储的数据分配一个数值,当做索引
- 数组是一种特殊的对象类型
- 当一个数组当中存储了其它数组(3个以上),叫做多维数组,2个数组叫二维数组。
- 稀疏数组-索引值不连续的数组
2.2 字面量创建一个数组
- 直接使用
[]
的方式创建一个数组// 创建一个空数组 var arr1 = [] // 创建一个有内容的数组 var arr2 = [1, 2, 3]
2.3内置构造函数创建数组
- 使用 js 的内置构造函数
Array
创建一个数组// 创建一个空数组 var arr1 = new Array() // 创建一个长度为 10 的数组 var arr2 = new Array(10) // 创建一个有内容的数组 var arr3 = new Array(1, 2, 3)
2.4 两种创建数组的区别
区别1:当字面量内只有一个数值型数据时,表示一个数据
区别2:当构造函数内只有一个数值型数据时,表示长度
区别3:注意区别,按需选择,顺手
2.5 数组的 length
- length: 长度的意思
- length 就是表示数组的长度,数组里面有多少个成员,length 就是多少
// 创建一个数组 var arr = [1, 2, 3] console.log(arr.length) // 3
2.6 数组的索引
- 索引,也叫做下标,是指一个数据在数组里面排在第几个的位置
- 注意: 在所有的语言里面,索引都是从 0 开始的
- 在 js 里面也一样,数组的索引从 0 开始
- 打印后为一个数组的集合Array(length) ,集合里面为索引:索引值
// 创建一个数组 var arr = ['hello', 'world']
- 上面这个数组中,第 0 个 数据就是字符串
hello
,第 1 个 数据就是字符串world
- 想获取数组中的第几个就使用
数组[索引]
来获取var arr = ['hello', 'world'] console.log(arr[0]) // hello console.log(arr[1]) // world
三.数组的分类
- 1.数值数组:var arr = [3,4,5,7,2,3];
- 2.字符数组:var arr = [“a”,“b”,“c”];
- 3.布尔数组:var arr = [true,false];
- 4.对象数组(JSON数组), 都是对象:var objArr = [{name:“admin”},{name:“root”},{name:“liyang”}]
- 5.数组(二维数组), 数组里面都是数组: var twoArr = [[3,5,6,7,4],[“a”,true,“b”],[“hello”,“world”]]
- 6.数组的操作方式:逐层解析
JSON数组
var objArr = [{name:"admin"},{name:"root"},{name:"liyang"}];
//指定数据 console.log(objArr[1].name);
//------------------------------------------------------------
二维数组
var twoArr = [[3,5,6,7,4],["a",true,"b"],["hello","world"]];
//指定数据 console.log(twoArr[2][0]);
3.1数组的操作
- 操作的是数组的索引+长度,如
var arr = ["hello",3,4,5,"world"];console.log(arr[0])
- 注意事项:
- 注意1:数组是一个有序数据的集合,有序的序号,索引是从0开始,如arr[0]
- 注意2:数组的长度是length-1,数组的最后一个:arr[arr.length-1]
3.2数组的增删改查
-
数组中length是从0开始,而索引是从1开始
-
1.增:
arr[arr.length] = "哈哈哈";
- 增加数组的长度,给不存在的位置赋值,利用索引最方便的就是在最后一位增加,不方便在中间增加:
var arr = []//创建一个空数组 arr[0] = '鸠摩智'; arr[1] = '柯镇恶'; arr[2] = '梅超风'; console.log(arr);//包含所用的数据 //---------------------------------- console.log(arr); arr[1] = "郭靖"; arr[10] = "黄蓉"; arr[20] = "郭襄"; console.log(arr);//稀疏数组; 索引值不连续的数组 - 稀疏数组 //-------------------------------- arr['姓名'] = "莫甘娜"; console.log(arr); arr['姓名2'] = "快乐风男"; console.log(arr['姓名']); // 自定义索引的数组写法是不可取的。
-
2.删:
// 原有长度是5,arr.length = 3;
- 缩短数组的长度
var arr = ['气质舞王赵四','灵魂舞步刘能','魔法伤害谢广坤','铁锹大哥王老七']; // 删除数组元素:通过delete 可以删除数组元素,但是在删除的过程中仅仅是删除了值, 但是位置还在,并且用undefiend占位,形成了稀疏数组。 delete arr[1]; console.log(arr[1]); // 形成了稀疏数组
-
3.改 :
arr[要修改数据的索引] = "四";
******- 找到对应索引的数据,赋值(覆盖):
var arr = ['雪山飞狐','碧血剑','连城诀','金瓶梅']; // 改一下数组的内容 arr[3] = '笑傲江湖'; console.log(arr);//会改变
-
4.查 :
arr[指定位置的索引]
******- 根据索引直接获取
console.log(arr[10]);// undefined // 查的时候,如果索引值超过了最大的索引值,结果为undefined。 // 查数组的最后一个元素 console.log(arr[arr.length-1]); // 通过更改lenght来清空数组(**必须是一个正常的数组) arr.length = 0; console.log(arr);//0 //--------------------------------------------------------- var arr2 = []; // 数组的索引值不为数字length失效 arr2['name1'] = 'zhangsan'; arr2.length = 0; console.log(arr2); //------------------------------------------------------- var arr3 = []; arr3[0] = 'admin'; arr3[10] = 'hello,world'; // 一旦数组的索引值处于稀疏数组的状态,我们在通过length操作的时候将会出现问题 // console.log(arr3) // arr3.length = 0; // console.log(arr3); arr3.length = 7; console.log(arr3)
后续完善中·····