关于数组对象

105 阅读1分钟

1. 创建数组

      // 1. 字面量创建
      var arr1 = [1, 2, 3];

      // 2.1 new Array()
      var arr2 = new Array(3);

      // 2.2 new Array(两个以上的值)
      var arr3 = new Array(1, 2, 3);

      console.log(arr1);
      console.log(arr2);
      console.log(arr3);

输出 : image.png

2. 检测是否为数组

  1. instanceof
      var arr1 = [1, 2, 3];

      console.log(arr1 instanceof Array);

输出 : image.png

  1. Array.isArray(数组)
      var arr1 = [1, 2, 3];

      console.log(Array.isArray(arr1));

输出 : image.png

Array.isArray(参数)为H5新增的方法, IE9以上才支持

3. 添加, 删除数组

image.png

4. 数组排序

image.png

      var arr = [1, 3, 2];
      
      // 1. 翻转数组
      console.log(arr.reverse());
      
      // 2. 冒泡排序
      console.log(arr.sort());

输出 : image.png

5. 元素索引

image.png

6. 数组去重

思路一 :

      let arr = ['c', 'a', 'z', 'a', 'x', 'a', 'x', 'c', 'b'];
      let newArr = [];

			// 记录原数组的长度
      let arrLength = arr.length;
      for (let i = 0; i < arrLength; i++) {
        // 缓存数组第一个元素
        let temp = arr[0];
        // 删除数组第一个元素
        arr.shift();
        // 判断新数组是否有重复, 无则添加
        if(arr.indexOf(temp) == -1) {
          newArr.push(temp);
        }
      }
      console.log(newArr);
  1. 创建一个用来保存的数组, 并且由于原数组的长度删除后会变换, 先对原数组的原始长度进行保存

image.png

  1. 进入循环, 用temp记录下数组第一个元素

image.png

  1. 删除数组第一个元素

image.png

  1. 判断新数组是否有重复, 有则进入下一次循环, 无则push()方法添加上去新的数组

image.png

思路二(较简单) :

      let arr = ['c', 'a', 'z', 'a', 'x', 'a', 'x', 'c', 'b'];
      let newArr = [];
      for (let i = 0; i < arr.length; i++) {
        //判断新数组有无原数组的第i个元素, 无则添加
        if(newArr.indexOf(arr[i]) == -1) {
          newArr.push(arr[i]);
        }
      }
      console.log(newArr);
  1. 第一次循环, 由于是第一个元素, 肯定没有重复元素, 那么直接push()

image.png

  1. 第二次循环, a与之前的都不重复, 则也是push()

image.png

  1. ...

7. 数组转字符串

image.png

      let arr = ['c', 'a', 'z'];
      
      console.log(arr.toString());

      // 无参数时默认','
      console.log(arr.join());

      console.log(arr.join('-'));

输出 : image.png

8. 常用方法拓展

image.png