JavaScrip基础(三):数组

索引数组

内存中连续存储多个数据的数据结构

创建

创建空数组

1.var arr=[];
2.var arr=new Array();

创建包含元素的数组

var arr2=[97,85,79];
var arr3=new Array("Tom","Marry");

创建空数组,再添加元素

var empArry=[];
empArry[0]='Tom';
empArry[0]='Marry';

访问数组中的元素

元素:数组中每个数据都是一个元素
如何访问:通过下标访问,数组名[i]
下标:数组中唯一标识每个元素存储位置的序号
特点:从0开始,连续不重复

数组的GET操作与SET操作

设置数组元素的值--SET

var names=['Tom'];
names[0]='Fiona'; //将值重新赋值
names[1]='Marry'; //添加一个新的元素
console.log(names);

获取数组元素的值--GET

var names=['Tom','Marry','Fiona'];
console.log(names[1]);

注:不会抛出数组下标越界异常

数组length属性

记录了数组中理论上元素个数
length属性的值永远是最大下标+1

var names=['Tom','Marry','Fiona'];
console.log(names.length); //长度为3


var arr2=new Array(10);
console.log(arr2.length); //长度为10

数组的遍历

遍历数组元素,通常选择for循环语句,元素的下标作循环变量

var names=['Tom','Marry','Fiona'];
for(var i=0;i<names.length;i++){
    console.log(names[i]);
}

固定套路

  1. 获取数组最后一个元素:arr[arr.length-1]
  2. 获取倒数第n个元素:arr[arr.length-n]
  3. 数字缩容:减小arr.length的数值,会删除结尾的多余元素

三个不限制

  1. 不限制数组的元素个数:长度可变
  2. 不限制下标越界
    获取元素值:不报错,返回undefined
    修改元素值:不报错,自动在指定位置创建新元素,并自动修改length属性为最大下标+1
  3. 不限制元素的数据类型

关联数组

  • 什么是关联数组:可自定义下标名称的数组
  • 何时用:只要希望每个元素都有专门的名称时
  • 如何:
    1. 创建空数组
    2. 向空数组中添加新元素,并自定义下标名称
      例子
var bookInfo=[];
bookInfo['bookName']='西游记';

遍历关联数组

用for in循环

for(var key in hash){
    key//只是元素的下标名
    hash//当前元素值
}

例子

var bookInfo=[];
bookInfo['bookName1']='西游记';
bookInfo['bookName2']='红楼梦';
for(var i in bookInfo){
    console.log(i);
     console.log(bookInfo[i]);
}

索引数组和关联数组的对比

索引数组 关联数组
以字符串输出 不能用字符串输出
下标是数字 下标是自定义的字符串
length属性有效 length属性失效
访问元素,都用数组名["下标"]
用for循环遍历 用for in循环遍历

希望快速查找元素时,用关联数组

posted @ 2022-12-25 15:24  是小鱼呀  阅读(29)  评论(0编辑  收藏  举报