之前在我自己的知乎記錄過一次,過段時間不用竟然又忘記啦,那就再回顧一遍!??
傳統的方法生成數組
//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];