数组是多个变量值的有序集合,数组是Array 对象的实例,所以可以像对象一样调用方法。

声明定义

  1. 使用字面量定义数组。
  2. 使用对象方式定义数组。 ```javascript // 字面量定义数组 let foo = [1,2,3];

// 对象方式定义数组 let bar = new Array(1,2,’Hello’,’World’);

console.log(foo); // [ 1, 2, 3 ] console.log(bar); // [ 1, 2, ‘Hello’, ‘World’ ]

  1. 3. Array.of 方法定义数组。
  2. Array.of() 方法创建一个具有可变数量参数的新数组实例,而不考虑参数的数量或类型。<br />Array.of() Array 构造函数之间的区别在于处理整数参数:<br />Array.of(7) 创建一个具有单个元素 7 的数组,而 Array(7) 创建一个长度为7的空数组(注意:这是指一个有7个空位(empty)的数组,而不是由7undefined组成的数组)。
  3. ```javascript
  4. let arr1 = new Array(7);
  5. let arr2 = Array.of(7);
  6. console.log(arr1); // [ <7 empty items> ]
  7. console.log(arr2); // [ 7 ]

类型转换

Array.from

使用Array.from可将类似数组或可迭代对象转换为数组,类数组指包含 length属性或可迭代的对象。

  • 第一个参数为要转换的数据,第二个参数为类似于map函数的回调方法

    1. let foo = 'Hello World';
    2. console.log(Array.from(foo));
    3. // ['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd']

    数组转字符串

  • toString()函数

  • String()函数
  • join()函数
    1. let bar = ['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd'];
    2. console.log(bar.toString()); // H,e,l,l,o, ,W,o,r,l,d
    3. console.log(String(bar)); // H,e,l,l,o, ,W,o,r,l,d
    4. console.log(bar.join('')); // Hello World

    常用方法

    类型检测

    使用Array.isArray()检测变量是否为数组类型。
    1. console.log(Array.isArray([1, "Hello", "World"])); //true
    2. console.log(Array.isArray(9)); //false

    pop

    从末尾弹出元素,直接改变元数组,返回值为弹出的元素。

    push

    压入元素,直接改变元数组,返回值为数组元素数量。

    shift

    从数组前面取出一个元素。

    unshift

    从数组前面添加元素。
    1. console.log(bar.pop()); // d
    2. console.log(bar.push('!')); // 11
    3. console.log(bar.shift()); // H
    4. console.log(bar.unshift('!'));// 11

    fill

    填充数组。
    1. console.log(Array(5).fill('0')); // [ '0', '0', '0', '0', '0' ]
    2. console.log(Array(5).fill('0',1,2)); // [ <1 empty item>, '0', <3 empty items> ]

    slice

    从数组中截取部分元素组合成新数组(并不会改变原数组),不传第二个参数时截取到数组的最后元素。
    1. console.log(['a','b','c','d','e','f'].slice(0,5)); // [ 'a', 'b', 'c', 'd', 'e' ]

    splice

    可以添加、删除、替换数组中的元素,会对原数组进行改变,返回值为删除的元素。
    删除数组元素第一个参数为从哪开始删除,第二个参数为删除的数量,指定第三个参数来设置在删除位置添加的元素。
    1. let baz = ['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd'];
    2. console.log(baz.splice(0, 5));
    3. console.log(baz.splice(0, 0, 'hi'));
    4. console.log(baz);// ['hi', ' ', 'W', 'o', 'r', 'l', 'd'];

    reverse/sort

    数组排序
    1. let qux = [1,3,9,7,5];
    2. console.log(qux.sort()); // [ 1, 3, 5, 7, 9 ]
    3. console.log(qux.reverse()); // [ 9, 7, 5, 3, 1 ]

    遍历数组

    TODO