数组的概念

  • 数组是一个数据的集合
  • 量词,用一个变量存储批量的数据
  • 样式:[1, 2, 3, ‘hello’, true, false]

    数据类型分类

  • number/ string / boolean / undefined / null / object / function / array / …

  • 数组也是数据类型中的一种
  • 我们简单的把所有数据类型分为两个大类 基本数据类型复杂数据类型
  • 基本数据类型: number / string / boolean / undefined / null
  • 复杂数据类型: object / function / array / …

    声明数组的方法

    ```javascript <1>通过new直接声明 var arr = new Array(100, true, “hello”); console.log(arr); <2>省略new声明数组 var arr = Array(100, true, “hello”); console.log(arr); <3>声明数组,可以通过数组常量 var arr = [100, true, “hello”]; console.log(arr);
  1. <a name="LUWL9"></a>
  2. ## 数组的索引
  3. 1、访问数组中的元素<br /> arr[下标] 下标是从0开始的<br /> 2、访问数组中元素的个数<br /> arr.length
  4. <a name="mnh3p"></a>
  5. ## 数组中的问题
  6. 如果你通过下面两个方法创建数组,并且只传入了一个参数,那么会生成这么长的数组,而不是把这个数存储进去。<br /> new Array(n)<br /> Array(n)
  7. ```javascript
  8. var arr = new Array(10);
  9. console.log(arr);
  10. for(var i = 0; i < arr.length; i++){
  11. //如果你指定下标去访问的时候,系统会自动赋值一个undefined去访问。
  12. console.log(arr[i]);
  13. }

数组的遍历

1、for循环:每循环一次,就重新判断,再进行循环。
2、快速遍历/快速枚举 for…in:直接从头到尾遍历

  1. var newArr = new Array(10); //<10 empty slots>
  2. console.log(newArr);
  3. newArr[4] = 100;
  4. newArr[15] = 200;
  5. console.log("遍历开始1");
  6. 方法1 for(var i in newArr){
  7. console.log(i, newArr[i]);
  8. }
  9. console.log("遍历结束1");
  10. console.log("遍历开始2");
  11. 方法2 for(var i = 0; i < newArr.length; i++){
  12. console.log(i, newArr[i]);
  13. }
  14. console.log("遍历结束2");

数组的方法

  • 栈:古代的木盆。

    1. 结构:从同一个口进,从同一个口出。<br /> 特点:先进后出。
    2. 我们可以通过数组的两个方法,去模拟栈结构<br /> push();<br /> pop();
  • 队列,每天你都在排队。

    1. 结构:从尾部进入,从头部取出<br /> 特点:先进先出。
    2. push()<br /> shift()
  • shift();

    1. 从数组的头部取下一个元素。<br /> 格式:数组.shift()<br /> 返回值:取下的这个元素
  • unshift()

    1. 从数组的头部插入元素。<br /> 格式:数组.unshift(元素1, 元素2...);<br /> 返回值:插完元素以后数组的长度。
  • push()

    1. 格式:数组.push(元素1, 元素2...)<br /> 功能:将传入的参数插入到数组的末尾<br /> 返回值:插完元素以后,数组的长度。
  • pop()

    1. 格式:数组.pop()<br /> 功能:从数组的末尾取下一个元素<br /> 返回值:取下的元素。
  • sort 排序

    1. 【注】按照字符串从小到大排序。<br />传入排序规则<br /> 升序<br /> arr.sort(function(value1, value2){<br /> return value1 - value2;<br /> })<br /> console.log(arr);<br />降序<br /> arr.sort(function(value1, value2){<br /> return value2 - value1;<br /> })<br /> console.log(arr);
  • concat();

    1. 格式1 数组.concat();<br /> 作用:拷贝原数组,生成新数组。
    2. 格式2 数组.concat(数组,元素....);<br /> 作用:合并所有的元素和数组,生成新数组。<br /> 返回值:生成的新数组。
  • slice()

    1. 格式:数组.slice(start, end);<br /> 功能:根据传入的下标,获取对应的元素,生成新数组。 [start, end)<br /> 返回值:生成的新数组.
  • splice()

    1. 格式:数组.splice()<br /> 参数:<br /> 1、第一个参数,从哪个下标开始<br /> 2、第二个参数,截取元素的长度<br /> 3、第三个参数开始往后,在下标位置插入的元素。
    2. 返回值:截取下来的元素组成的数组。
  • join()

    1. 数组.join(字符串)<br /> 功能:用传入的字符串对数组中的元素进行字符串拼接<br /> 返回值:拼接好的字符串。
  • revese() 数组逆序