之前在我自己的知乎记录过一次,过段时间不用竟然又忘记啦,那就再回顾一遍!😊
传统的方法生成数组
//1.传统的for循环写法
var arr = [];
for(var i = 0; i < 100; i ++){
arr[i] = i;
}
console.log(arr); // [0,1,2...99]
//2.
var arr2 = [];
for(var i = 0; i < 100; i ++){
arr2.push(i);
}
console.log(arr2); // [0,1,2,...99]
不使用循环的方式为的第一种
- 使用
Array.apply(null,{length:100})
生成一个100位的数据,每个值为undefined
。 - 然后在使用
Object.keys()
方法获取数组的key
值,但是这里得到的数组是一个字符串数组,不是数字 - 所以我们需要再加工一下。
// 生成100位数组
var arr = Array.apply(null,{length:100})
// 获得数组的字符串key值
arr = Object.keys(arr);
// 将字符串key值转成number
arr = arr.map(function(item){
return +item;
})
// 总体的写法
var arr = Object.keys(Array.apply(null,{length:100})).map(function(item){
return +item;
})
console.log(arr);
不使用循环的方式为的第二种
- es6的
Array.from()
参考Array.from
Array.from({length:100},(v,i) => i);
//[0,1,2,3....99];
- es6的
Array.prototype.keys()
,keys()方法返回一个新的Array Iterator,它包含数组中每个索引的键。 参考Array.prototype.keys()
var arr = new Array(100).keys();
console.log(Array.from(arr));
//[0,1,2,3....99];