JS 创建数组方法总结

128 阅读1分钟

1.使用数组字面量表示法

    var arr = [];   //创建一个空数组
    var arr1 = [10];   // 创建一个包含1项数据为10的数组
    var arr2 = ["a","b","c","d"];   // 创建一个包含4个字符串的数组

2.使用 Array 构造函数

  // 无参数
  var arr1 = new Array();   //创建一个空数组
  
  // 有参数
  
  // 1.如果只传一个数值参数,则表示创建一个初始长度为指定数值的空数组
  
  var arr2 = new Array(20);   // 创建一个包含10项的数组
  
  // 2.如果传入一个非数值的参数或者参数个数大于 1,则表示创建一个包含指定元素的数组
  
  var arr3 = new Array("a","b","c");   // 创建一个包含3个字符串的数组
  var array4 = new Array('10'); // ["10"]
  

3. Array.from 方法创建数组 (es6 新增)

function arga(...args) {  //...args剩余参数数组,由传递给函数的实际参数提供
    let arg = Array.from(args);
    console.log(arg); // ['arr1',26,'from']
}
arga('arr1', 26, 'from')

映射转换

向 Array.from()方法传递一个映射用的函数作为第二个参数

function arga(...args) {  
     return Array.from(args, value => value + 1);
}
let arr = arga('arr', 26, 'pop');
console.log(arr);//['arr1',27,'pop1']

向 Array.from()方法传递一个映射用的函数作为第三个参数

const helper = {
  diff: 1,
  add(value) {
    return value + this.diff;
  }
}

function translate() {
  //arguments 是一个对应于传递给函数的参数的类数组对象
  return Array.from(arguments, helper.add, helper); 
}

let arr = translate('liu', 26, 'man');
console.log(arr); // ["liu1", 27, "man1"]

4. Array.of 方法创建数组 (es6 新增)

// Array.of()方法总会创建一个包含所有传入参数的数组,而不管参数的数量与类型。
let arr = Array.of(1, 2);
console.log(arr.length); //2

let arr1 = Array.of(3);
console.log(arr1.length); //1
console.log(arr1[0]); //3

let arr2 = Array.of('2');
console.log(arr2.length); //1
console.log(arr2[0]); //'2'