1. 创建数组的两种方式

  1. // 1. 利用数组字面量
  2. var arr = [1, 2, 3];
  3. console.log(arr[0]); // 1
  4. // 2. 利用new Array()
  5. // var arr1 = new Array(); // 创建了一个空的数组
  6. // var arr1 = new Array(2); // 这个2 表示数组的长度为2 里面有2个空的数组元素
  7. var arr1 = new Array(2, 3); // 等价于[2, 3] 这样写表示里面有2个数组元素是2和3
  8. console.log(arr1); // (2) [2, 3]

2. 检测是否为数组方法

  1. // 检测是否为数组方法
  2. // 翻转数组
  3. function reverse(arr) {
  4. if (arr instanceof Array) {
  5. var newArr = [];
  6. for (var i = arr.length - 1; i >= 0; i--) {
  7. newArr[newArr.length] = arr[i];
  8. }
  9. return newArr;
  10. } else {
  11. return 'error 这个参数要求必须是数组格式 [1, 2, 3]'
  12. }
  13. }
  14. console.log(reverse([1, 2, 3])); // (3) [3, 2, 1]
  15. console.log(reverse(1, 2, 3)); // error 这个参数要求必须是数组格式 [1, 2, 3]
  16. // 检测是否为数组方法
  17. // (1) instanceof 运算符 它可以用来检测是否为数组
  18. var arr = [];
  19. var obj = {};
  20. console.log(arr instanceof Array); // true
  21. console.log(obj instanceof Array); // false
  22. // (2) Array.isArray(参数); H5新增的方法 ie9以上版本支持
  23. console.log(Array.isArray(arr)); // true
  24. console.log(Array.isArray(obj)); // false

3. 添加删除数组元素的方法

方法名 说明 返回值
push(参数1….) 末尾添加一个或多个元素,注意修改原数组 并返回新的长度
pop() 删除数组最后一个元素,把数组长度减1 无参数、修改原数组 返回它删除的元素的值
unshift(参数1….) 向数组的开头添加一个或更多元素,注意修改原数组 并返回新的长度
shift() 删除数组的第一个元素,数组长度减1 无参数、修改原数组 并返回第一个元素的值

3.1 push() 在我们数组的末尾添加一个或者多个数组元素 push 推

  1. // 1. push() 在我们数组的末尾添加一个或者多个数组元素 push 推
  2. var arr = [1, 2, 3];
  3. // arr.push(4, 'pink');
  4. console.log(arr.push(4, 'pink')); // 5
  5. console.log(arr); // (5) [1, 2, 3, 4, 'pink']
  6. // (1) push 是可以给数组追加新的元素
  7. // (2) push() 参数可以直接写 数组元素就可以了
  8. // (3) push完毕之后,返回的结构是新数组的长度
  9. // (4) 原数组也会发生变化

3.2 unshift 在我们数组的开头添加一个或者多个数组元素

  1. // 2. unshift 在我们数组的开头添加一个或者多个数组元素
  2. var arr = [1, 2, 3];
  3. console.log(arr.unshift('red', 'purple')); // 5
  4. console.log(arr); // (5) ['red', 'purple', 1, 2, 3]
  5. // (1) unshift是可以给数组前面追加新的元素
  6. // (2) unshift() 参数直接写数组元素就可以了
  7. // (3) unshift完毕之后返回的结果是新数组的长度
  8. // (4) 原数组也会发生变化

3.3 pop() 它可以删除数组的最后一个元素

  1. var arr = [1, 2, 3];
  2. console.log(arr.pop()); // 3
  3. console.log(arr); // (2) [1, 2]
  4. // (1) pop是可以删除数组的最后一个元素 记住一次只能删除一个元素
  5. // (2) pop() 没有参数
  6. // (3) pop完毕之后 返回的结果是删除的那个元素
  7. // (4) 原数组也会发生变化

3.4 shift() 它可以删除数组的第一个元素

  1. var arr = [1, 2, 3];
  2. console.log(arr.shift()); // 1
  3. console.log(arr); // (2) [2, 3]
  4. // (1) shift是可以删除数组的第一个元素 记住一次只能删除一个元素
  5. // (2) shift() 没有参数
  6. // (3) shift完毕之后 返回的结果是删除的那个元素
  7. // (4) 原数组也会发生变化

3.5 案例:筛选数组

有一个包含工资的数组[1500, 1200, 2000, 2100, 1800],要求把数组中工资超过2000的删除,剩余的放到新数组里面

  1. var arr = [1500, 1200, 2000, 2100, 1800];
  2. var newArr = [];
  3. for (var i = 0; i < arr.length; i++) {
  4. if (arr[i] < 2000) {
  5. // newArr[newArr.length] = arr[i];
  6. newArr.push(arr[i]);
  7. }
  8. }
  9. console.log(newArr); // (3) [1500, 1200, 1800]

4. 数组排序

方法名 说明 是否修改原数组
reverse() 颠倒数组中元素的顺序,无参数 该方法会改变原来的数组 返回新数组
sort() 对数组的元素进行排序 该方法会改变原来的数组 返回新数组
  1. // 1. 翻转数组
  2. var arr = ['pink', 'red', 'blue'];
  3. arr.reverse();
  4. console.log(arr); // (3) ['blue', 'red', 'pink']
  5. // 2. 数组排序(冒泡排序)
  6. var arr1 = [13, 4, 77, 1, 7];
  7. arr1.sort(function (a, b) {
  8. // return a - b; // 升序的顺序排列
  9. return b - a; // 降序的顺序排列
  10. });
  11. console.log(arr1); // (5) [77, 13, 7, 4, 1]

5. 数组索引方法

方法名 说明 返回值
indexOf() 数组中查找给顶元素的第一个索引 如果存在返回索引值 如果不存在,则返回-1
lastIndexOf() 在数组中的最后一个的索引 如果存在返回索引号 如果不存在,则返回-1
  1. // 返回数组元素索引号方法 indexOf(数组元素) 作用就是返回该数组元素的索引号 从前面开始查找
  2. // 它只返回第一个满足条件的索引号
  3. // 它如果在该数组里面找不到元素 则返回的是 -1
  4. // var arr = ['red', 'green', 'blue', 'pink', 'blue'];
  5. // console.log(arr.indexOf('blue')); // 2
  6. var arr = ['red', 'green', 'pink'];
  7. console.log(arr.indexOf('blue')); // -1
  8. // 返回数组元素索引号方法 lastIndexOf(数组元素) 作用就是返回该数组元素的索引号 从后面开始查找
  9. var arr = ['red', 'green', 'blue', 'pink', 'blue'];
  10. console.log(arr.lastIndexOf('blue')); // 4

5.1 案例:数组去重 (重点案例)

有一个数组[‘c’, ‘a’, ‘z’, ‘a’, ‘x’, ‘a’, ‘x’, ‘c’, ‘b’],要求去除数组中重复的元素
案例分析:
目标:把旧数组里面不重复的元素选取出来放到新数组中,重复的元素只保留一个,放到新数组中去重

  1. // 核心算法:我们遍历旧数组,然后拿着旧数组元素去查询新数组,重复的元素只保留一个,放到新数组中去重
  2. // 我们怎么知道该元素没有存在?利用新数组 .indexOf(数组元素) 如果返回-1 就说明新数组里面没有该元素
  3. // 封装一个去重的函数 unique 独一无二的
  4. function unique(arr) {
  5. var newArr = [];
  6. for (var i = 0; i < arr.length; i++) {
  7. if (newArr.indexOf(arr[i]) === -1) {
  8. newArr.push(arr[i]);
  9. }
  10. }
  11. return newArr;
  12. }
  13. var arr = ['c', 'a', 'z', 'a', 'x', 'a', 'x', 'c', 'b'];
  14. var demo = unique(['c', 'a', 'z', 'a', 'x', 'a', 'x', 'c', 'b']);
  15. console.log(demo); // (5) ['c', 'a', 'z', 'x', 'b']

6. 数组转换为字符串

方法名 说明 返回值
toString() 把数组转换成字符串 逗号分隔每一项 返回一个字符串
join(‘分隔符’) 方法用于把数组中的所有元素转换为一个字符串 返回一个字符串
  1. // 数组转换为字符串
  2. // 1. toString() 将我们的数组转换为字符串
  3. var arr = [1, 2, 3];
  4. console.log(arr.toString()); // 1,2,3
  5. // 2. join(分隔符)
  6. var arr1 = ['green', 'blue', 'pink'];
  7. console.log(arr1.join()); // ['green', 'blue', 'pink']
  8. console.log(arr1.join('-')); // green-blue-pink
  9. console.log(arr1.join('&')); // green&blue&pink

7. 课下查询(concat()、slice()、splice())

方法名 说明 返回值
concat() 连接两个或多个数组,不影响原数组 返回一个新的数组
sllice() 数组截取slice(begin, end) 返回被截取项目的新数组
splice() 数组删除splice(第几个开始,要删除几个) 返回被删除项目的新数组 注意:这个会影响原数组