day24-数组

# 数组

对象中可以通过键值对存储多个数据,且数据的类型是没有限制的,所以通常会存储一个商品的信息或一个人的信息

但对象在存储同类型数据的时候比较困难,例如,存储一个班级所以人的姓名:


var obj = {
    name1:"张三",
    name2:"李四",
    name3:"王五",
    ...
}

这种存储方式我们没有办法通过一个人的姓名获取到这个人的编号,也没有办法通过一个编号获取到某个人的姓名。

js提供了另外一种对象类型的数据,可以通过编号来存储数据:数组。也是对象3种表现形式中的另外一种,`[]`定义的对象。

## 数组定义


var arr = [ ]

这是一个空数组,定义带数据的数组:
var arr = ['张三','李四','王五','赵六']
 

数组中的数据类型没有限制,在实际项目中,数组中通常会存储同一类型的数据。


var arr = ['a',2,false,undefined,{name:"张三"}];
 

数组这种数据,相当于在一个大空间中,有很多小空间,每个值前面的数字,表示这个小空间的编号,专业术语叫下标第一个下标永远是0,依次向后递增,最后一个下标是值的个数-1

也就是说,数组这种数据中每个值是有顺序的。

js还提供了一个构造函数,用来创建数组:


var arr = new Array("张三","李四","王五")
 

这两种方式定义的数据是一样的。

有一种情况,这两种定义方式是不一样的:


var arr = [5]
var brr = new Array(5)
console.log(arr,brr)

 

`[ ]`形式定义的是一个数组中有一个小空间,其中的值是5;构造函数方式定义的,表示有5个空的小空间。

数组的规律:

第一个值的下标永远是0;

最后一个值的下标永远是值的个数-1。

## 数组基本操作

数组中值的个数:`数组.length`


var arr = ['张三',"李四","王五","赵六"];
var arr1 = [1,2,3,4,5,6];
console.log(arr.length);  // 4
console.log(arr1.length);   // 6

访问数组中的元素:`数组[下标]`

例:
var arr = ["张三","李四","王五"];
console.log(arr[1]); // 李四

添加元素:`数组[下标] = 值`

例:
var arr = ["张三","李四"];
arr[2] = "王五";
console.log(arr); // (3) ["张三", "李四", "王五"]
arr[10] = "赵六";
console.log(arr); // (11) ["张三", "李四", "王五", empty × 7, "赵六"] 中间还有7个空元素
 

修改元素:`数组[下标] = 值`

例:
var arr = ["张三","李四"];
arr[0] = "王五";
console.log(arr); // (2) ["王五", "李四"]
 

使用说明:如果下标是已经存在的,那赋值操作就是修改数组元素的值,如果下标是不存在,那赋值操作就给数组添加元素。

删除元素:`delete 数组[下标]`


var arr = [1,2,3];
delete arr[0];
console.log(arr)
 

这种删除方式,只能删除值,并不能删除小空间。

数组长度的赋值:


var arr = [1,2,3];
arr.length = 0;
console.log(arr)     // [ ]

var arr = [1,2,3];
arr.length = 10;
console.log(arr)



var arr = [1,2,3];
arr.length = 1;
console.log(arr)      // [1]

 

遍历数组:

如果要将数组中的所有元素都输出,操作如下:


var arr = ["张三","李四","王五","赵六"];
console.log(arr[0]);          // 张三
console.log(arr[1]);         // 李四
console.log(arr[2]);         // 王五
console.log(arr[3]);        

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值