1. 创建数组的两种方式

Snipaste_2021-09-26_23-16-49.png

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

2. 检测是否为数组方法

Snipaste_2021-09-26_23-26-44.png

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

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

Snipaste_2021-09-26_23-36-55.png

  1. <script>
  2. // 添加删除数组元素方法
  3. // 1. push() 在我们数组的末尾 添加一个或者多个数组元素 push 推
  4. var arr = [1, 2, 3];
  5. // arr.push(4, 'pink');
  6. console.log(arr.push(4, 'pink'));
  7. console.log(arr);
  8. // (1) push 是可以给数组追加新的元素
  9. // (2) push() 参数直接写 数组元素就可以了
  10. // (3) push完毕之后,返回的结果是 新数组的长度
  11. // (4) 原数组也会发生变化
  12. // 2. unshift 在我们数组的开头 添加一个或者多个数组元素
  13. console.log(arr.unshift('red', 'purple'));
  14. console.log(arr);
  15. // (1) unshift是可以给数组前面追加新的元素
  16. // (2) unshift() 参数直接写 数组元素就可以了
  17. // (3) unshift完毕之后,返回的结果是 新数组的长度
  18. // (4) 原数组也会发生变化
  19. // 3. pop() 它可以删除数组的最后一个元素
  20. console.log(arr.pop());
  21. console.log(arr);
  22. // (1) pop是可以删除数组的最后一个元素 记住一次只能删除一个元素
  23. // (2) pop() 没有参数
  24. // (3) pop完毕之后,返回的结果是 删除的那个元素
  25. // (4) 原数组也会发生变化
  26. // 4. shift() 它可以删除数组的第一个元素
  27. console.log(arr.shift());
  28. console.log(arr);
  29. // (1) shift是可以删除数组的第一个元素 记住一次只能删除一个元素
  30. // (2) shift() 没有参数
  31. // (3) shift完毕之后,返回的结果是 删除的那个元素
  32. // (4) 原数组也会发生变化
  33. </script>

案例:筛选数组

Snipaste_2021-09-27_00-05-57.png

  1. <script>
  2. // 有一个包含工资的数组[1500, 1200, 2000, 2100, 1800],要求把数组中工资超过2000的删除,剩余的放到新数组里面
  3. var arr = [1500, 1200, 2000, 2100, 1800];
  4. var newArr = [];
  5. for (var i = 0; i < arr.length; i++) {
  6. if (arr[i] < 2000) {
  7. // newArr[newArr.length] = arr[i];
  8. newArr.push(arr[i]);
  9. }
  10. }
  11. console.log(newArr);//[1500,1200,1800]
  12. </script>

4. 数组排序(放到冒泡排序之后讲解)

Snipaste_2021-09-27_00-18-05.png

  1. <script>
  2. // 数组排序
  3. // 1. 翻转数组
  4. var arr = ['pink', 'red', 'blue'];
  5. arr.reverse();
  6. console.log(arr);// ['blue', 'red', 'pink']
  7. // 2. 数组排序(冒泡排序)
  8. var arr1 = [13, 4, 77, 1, 7];
  9. arr1.sort(function(a, b) {
  10. // return a - b; 升序的顺序排列
  11. return b - a; // 降序的顺序排列
  12. });
  13. console.log(arr1);//[77, 13, 7, 4, 1]
  14. </script>

5. 获取数组元素索引方法

Snipaste_2021-09-27_00-21-43.png

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

案例:数组去重

Snipaste_2021-09-27_00-43-23.png
Snipaste_2021-09-27_00-45-51.png

  1. <script>
  2. // 数组去重 ['c', 'a', 'z', 'a', 'x', 'a', 'x', 'c', 'b'] 要求去除数组中重复的元素。
  3. // 1.目标: 把旧数组里面不重复的元素选取出来放到新数组中, 重复的元素只保留一个, 放到新数组中去重。
  4. // 2.核心算法: 我们遍历旧数组, 然后拿着旧数组元素去查询新数组, 如果该元素在新数组里面没有出现过, 我们就添加, 否则不添加。
  5. // 3.我们怎么知道该元素没有存在? 利用 新数组.indexOf(数组元素) 如果返回时 - 1 就说明 新数组里面没有改元素
  6. // 封装一个 去重的函数 unique 独一无二的
  7. function unique(arr) {
  8. var newArr = [];
  9. for (var i = 0; i < arr.length; i++) {
  10. if (newArr.indexOf(arr[i]) === -1) {
  11. newArr.push(arr[i]);
  12. }
  13. }
  14. return newArr;
  15. }
  16. // var demo = unique(['c', 'a', 'z', 'a', 'x', 'a', 'x', 'c', 'b'])
  17. var demo = unique(['blue', 'green', 'blue'])
  18. console.log(demo);//['blue', 'green']
  19. </script>

6. 数组转换为字符串

Snipaste_2021-09-27_00-55-08.png

  1. <script>
  2. // 数组转换为字符串
  3. // 1. toString() 将我们的数组转换为字符串
  4. var arr = [1, 2, 3];
  5. console.log(arr.toString()); // 1,2,3
  6. // 2. join(分隔符)
  7. var arr1 = ['green', 'blue', 'pink'];
  8. console.log(arr1.join()); // green,blue,pink
  9. console.log(arr1.join('-')); // green-blue-pink
  10. console.log(arr1.join('&')); // green&blue&pink
  11. </script>

7. concat(),slice() 和 splice()

Snipaste_2021-09-27_01-04-17.png