10.js基础之数组的创建及操作

一.数组

  • 概念:就是数据,数组是一种数据的有序集合,数组其实也是对象,只是存储数据的形式不一样,但是类型是一样的,按照次序排列的一组值,其中每一个值都有一个索引值(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)   
    

后续完善中·····

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值