1.第一种
new Array(6).fill(0).map((item, index) => index + 1)
2.第二种:
Array.from() 可以通过以下方式来创建数组对象:
语法
Array.from(arrayLike)
Array.from(arrayLike, mapFn)
Array.from(arrayLike, mapFn, thisArg)
参数
arrayLike
想要转换成数组的类数组或可迭代对象。
mapFn 可选
调用数组每个元素的函数。如果提供,每个将要添加到数组中的值首先会传递给该函数,然后将 `mapFn` 的返回值增加到数组中。使用以下参数调用该函数:
element
数组当前正在处理的元素。
index
数组当前正在处理的元素的索引。
thisArg 可选
执行 mapFn 时用作 this 的值。
伪数组对象(拥有一个 length 属性和若干索引属性的任意对象)
可迭代对象(可以获取对象中的元素,如 Map和 Set 等)
var arr = [];
// 向数组里填充
arr = Array(10).fill(1);
// 将伪数组转为数组,并给每个元素填充1
Array.from({length:10}, ()=>1);
var arr = [];
arr.length = 10;
//生成数列:生成重复字符,切开。 k+1 数组从 1 开始
arr = "X".repeat(10).split('').map((v,k) => k+1);
// "X".repeat(10).split('').map((v,k) => k);// 0 - 9
//生成数列:生成对象转数组。 k+1 数组从 1 开始
arr = Array.from({length:10}, (v, k) => k+1);
// Array.from({length:10}, (v, k) => k);// 0 - 9
// 用for实现。声明 arr 也包含在内了 //生成数列:无体 (for 不加大括号就一定要分号结束)
for(var arr=[],i=1; arr.length<10; arr.push(i++));
//另类 for 方法,因为用了 let 所以for外也拿不到它。//生成数列:无体 (for 不加大括号就一定要分号结束)
for(let arr=[],i=1; arr.length<10; arr.push(i++));
// 利用 Array.from + 箭头函数
Array.from({length:10}, (v, i) => i);
// 利用 Array.from + keys()
Array.from(Array(100).keys())
// 利用 Array.of + keys() +数组展开
Array.of(...Array(10).keys())
// 直接构建数组展开
[...Array(10).keys()]