# 数组

# 什么叫数组

一系列数据的集合,每一项可以保存任何类型的数据,称为数组的元素,每个元素之间用逗号隔开

数组格式:[1,2,3]

# 数组创建方式

//1)字面量(直接量)(推荐)
var arr = [1,2,3];

//2)使用构造函数创建
var arr = new Array();//创建一个空数组
var arr = new Array(7);//创建一个长度为7的数组(数组项都为undefined)
var arr = new Array('王大锤',18 ,'普通青年','广州');//创建数组并同时写入数据

# 数组操作

# 数组访问与写入

  • 索引(下标):从0开始
    var arr = ['html5','css3','javascript'];
    
    //访问
    arr[0]; //=> 'html5'
    arr[2]; //=> 'javascript'
    
    //写入
    arr[3] = 'web前端';
    
  • length:表示数组的长度
    arr.length; //=> 3
    

# 数组遍历

  • for循环

    格式:for(变量初始化;判断条件;变量更新){执行语句}

    var arr = ['html5','css3','javascript'];
    for(var i=0;i<arr.length;i++){
      console.log(arr[i]);
    }
    

# 多维数组

即数组里面包含数组

var arr = [1,2,'html5',[3,4,'css3'],[5,6,'javascript']]
arr[3][2]; //=>'css3'

# 数组方法

  • push: 往数组尾部添加一个或多个元素,返回数组新的长度
  • pop:删除数组最后一个元素,返回删除的元素
  • unshift:往数组开头添加一个或多个元素,返回数组新的长度
  • shift:删除数组第一个元素,返回删除的元素
  • sort:将数组中的元素排序,并返回排序后的数组

    默认以字符串的排列方式(转换成ASCII码进行对比)

  • reverse:将数组中的元素颠倒顺序,返回逆序后的数组
  • slice(start[,end]):返回数组的片段或子数组,从start开始到end(不包括end所对应的元素)

    如果省略end参数,则截取到数组的最后一项

  • splice(start,deleteNum,…items):在数组中插入、删除、替换的通用方法
    • start:起始索引位置
    • deleteNum:要删除的数量
    • items:插入的元素(可以是多个)
  • join(separator) 返回字符串值,其中包含了连接到一起的数组的所有元素
    • separator为分隔符,默认为逗号
  • concat() 返回一个新数组,这个新数组是由调用这个方法的数组和参数组成

    参数可以是多个

# 值类型与引用类型的区别

[内存中的状态]

# 数组复制与传输

  • 如何复制数组
  • 把数组作为函数的参数

# 数组排序

  • 冒泡排序法
  • 选择排序法

[练习]

  • 创建一个包含50个三位数的随机数组
  • 找出以下数组中所有小于10的元素并组成一个新的数组
    [10,15,2,32,5,4,20,8,48,54,6]
  • 编写一个map(arr)函数,把数组中的每一个数字都增加20%,并返回新的数组
  • 编写一个has(arr,60)函数,判断arr数组中是否包含60这个数
  • 有一个从小到大排序的数组[3,5,6,20,22,33,88]。现输入一个数,要求按原来的规律将它插入数组中,并打印出新的数组
  • 分别计算出下面数组的最大值,最小值和平均值,并输出他们的索引
    [10,2,8,55,32,18,9,11,30,16,19,20]

上次更新: 2020-3-16 08:17:11