数组Array

109 阅读3分钟

数组是什么?

数组是一种可以按顺序保存数据的数据类型,也可以看成一个特殊点的对象,毕竟万物皆对象呢,笑~

对象与数组都是可以存储数据的,区别在于对象是无序的,而数组是有序的 对象是由{键值对}的方式来创建,存储方式是地址来引用值{属性名:属性值} 数组是[数据]来创建,对象的键值是唯一的,如果重复,下面的会覆盖上面的,而数组不会出现这种情况况,也是上面我说的对象存储的是地址,地址覆盖了

为什么说数组是有序的呢?

因为数组里面的几乎所有值都可以通过索引来找到,也就是数组名[索引值]

数组使用

数组里面基本可以存放js中所有的数据类型,不管你是字符串呀,还是布尔,在它面前一视同仁 好了,不废话了,来创建个数组:

//字面量创建一个数组:
var arr = [1,2,3,4,1,1,3,4,2,4];

//用创建构造函数的方式来创建,这种可以给定数组长度,个人感觉不如字面量简洁明了,推荐第一种哈
var arr = new Array();

下面我都以字面量来写的

访问数组

之前也说过,数组访问是通过下标,那么下标(索引)是什么呢?

其实很简单:我们存储的数据在数值中,数组会自动给值编号,从0开始

var arr = [1,2,3,4,1,1,3,4,2,4];
    索引值  0 1 2 3 4 5 6 7 8 9

我们如果想要第三个值,就要从0开始数第三个,第三个是二,那么这个数在该数组里的索引便是2

var arr = [1,2,3,4,1,1,3,4,2,4];
arr[2]//就是我们想要单独的的第三个数
document.write(arr[2])//打印输出

数组长度

因为数组是有序的,并且每一个值都有一个索引,那么它就有长度

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

数组增删改查

常用方法:

  1. push 动态向数组的尾部添加一个值
  2. unshit 动态向数组头部添加一个值
  3. pop 删除最后一个值
  4. shift 删除第一个值
  5. splice 动态删除任意值 当然你也可以用字符串拼接的方式来增加数组,但我还是感觉直接用方法比较简单,毕竟有方法为什么不用呢?偷懒好工具呀
let arr = [1,2,3,4];
    var arr2 = [2,3,45,3]
    //字符串拼接
    //该方法不会对原数组产生影响
    var result = arr.concat(arr2)
    console.log(result);
    console.log(arr2);
    //也可以用+号拼接字符串
    console.log(arr+arr2)
    
    arr.push(3)//向数组尾部添加元素

方法都是可以在文档上找到的,记些常用的就行

数组遍历:

推荐使用for循环来遍历数组,通过for in; for of ;也可以,但我之前说过值是字符串,还要转换,麻烦

//遍历数组,并在控制台打印输出
for (let i = 0; i < arr.length; i++) {
      console.log(arr[i])
    }

给大家分享一些案例:

创建一个新的数组把arr中大于10的数据放进去:
let arr = [2,3,53,445,21,556,1,66];

    let newArr = []
    for (let i = 0; i < arr.length; i++) {
      if (arr[i] >= 10) {
        newArr.push(arr[i])
      }
      
    }
    console.log(newArr);
求数组和,求平均数:
//声明个sum来存储和
let sum = 0;
    for (let i = 0; i < arr.length; i++) {
      sum+=arr[i];
    }
    document.write(sum+'<br>');
    //总数除以数组长度(数的个数)得到的救赎平均值
    document.write(sum / arr.length)
数组去重
var arr = [1,2,3,4,1,1,3,4,2,4];

    //去除数组中的重复数字
    //获取数组中的每一个元素
    for (let  i= 0;  i< arr.length; i++) {
      for (let j = i+1; j < arr.length; j++) {
        if (arr[i]==arr[j]) {
          //如果相等,则出现重复的元素,则删除j对应的元素
          arr.splice(j,1);
          //当删除了当前j的元素时,后面元素自动补位
          j--;
        }
        
      }
      
    }