之前在我自己的知乎記錄過一次,過段時間不用竟然又忘記啦笆呆,那就再回顧一遍请琳!??
傳統(tǒng)的方法生成數(shù)組
//1.傳統(tǒng)的for循環(huán)寫法
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]
不使用循環(huán)的方式為的第一種
- 使用
Array.apply(null,{length:100})
生成一個100位的數(shù)據(jù),每個值為undefined
腰奋。 - 然后在使用
Object.keys()
方法獲取數(shù)組的key
值单起,但是這里得到的數(shù)組是一個字符串數(shù)組抱怔,不是數(shù)字 - 所以我們需要再加工一下劣坊。
// 生成100位數(shù)組
var arr = Array.apply(null,{length:100})
// 獲得數(shù)組的字符串key值
arr = Object.keys(arr);
// 將字符串key值轉(zhuǎn)成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);
不使用循環(huán)的方式為的第二種
- es6的
Array.from()
參考Array.from
Array.from({length:100},(v,i) => i);
//[0,1,2,3....99];
- es6的
Array.prototype.keys()
,keys()方法返回一個新的Array Iterator屈留,它包含數(shù)組中每個索引的鍵局冰。 參考Array.prototype.keys()
var arr = new Array(100).keys();
console.log(Array.from(arr));
//[0,1,2,3....99];