创建一个长度为10的数组

创建一个长度为10的数组,并且每一个元素是该元素的下标

  • 最简单方法 for循环
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function arrayCreate(length){
    let arr = [];
    for(let i = 0 ; i < length ; i++){
    arr[i] = i;
    }
    return arr;
    }

    let a1 = arrayCreate(10);

Array.prototype.from() 方法从一个类数组或可迭代对象中创建一个新的数组示例。

Array(10) 创建一个只有长度的数组,这时候不能使用map方法,可以使用fill方法。

new Array(10) 同 Array(10)。

{length: 10} 类数组对象,且这是一个无值的对象。

Array.apply 实际使用的是Function.prototype.apply;第二个参数正常是一个数组,如果是类数组对象,就作为一个数组去处理。

Array.prototype.fill() 方法用一个固定值填充一个数组中从起始索引到终止索引内的全部元素。

Array.prototype.keys() 方法返回一个新的Array迭代器,包含数组中每个索引的键。

... 扩展运算符

Object.keys() 方法返回由一个给定对象的自身可枚举属性组成的数组

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Array.from({length: 10}, (v, k) => k);

Array.from(Array(10).keys());
Array.from(new Array(10).keys());
Array.from(Array.apply(null, Array(10)).keys());
Array.from(Array.apply(null, {length: 10}).keys());
Array.from(Array(10).fill(1).keys());
Array.from(Array.from({length: 10}).keys());

[...Array(10).keys()];
[...new Array(10).keys()];
[...Array.apply(null, Array(10)).keys()];
[...Array.apply(null, {length: 10}).keys()];
[...Array(10).fill(1).keys()];
[...Array.from({length: 10}).keys()];


Object.keys(Array.apply(null, {length:10})).map(key => +key);
Object.keys(Array.from({length:10})).map(key => +key);
Object.keys(String(Array(11))).map(key => +key);

new Array(10).toString().split(",").map((v, i) => i);

"".padStart(9, "-").split("-").map((v,k)=>k);
"".padEnd(9, "-").split("-").map((v,k)=>k);
"-".repeat("9").split("-").map((v,k)=>k);