如題,Javascript如何生成一個(gè)0-60(任意長度)的數(shù)組愧膀?
最容易理解的方式就是通過for循環(huán)往一個(gè)空數(shù)組添加元素拦键。
var collectArr = [];
for (var i = 0; i <= 60; i++) {
collectArr.push(i);
}
console.log(collectArr);
問題是解決了,但是這樣寫不簡潔明了檩淋,寫在項(xiàng)目中還略顯累贅氧敢,有其他方式實(shí)現(xiàn)嗎恋拷?有的钮糖。
不考慮瀏覽器兼容的情況下阎抒,直接使用ES6語法是最快速的秩伞。
1.Array.from()
const collectArr1 = Array.from(Array(61), (_val, index) => index)
const collectArr2 = Array.from({ length: 61 }, (_val, index) => index)
對一個(gè)類似數(shù)組或可迭代對象創(chuàng)建一個(gè)新的遇汞,淺拷貝的數(shù)組實(shí)例单料。
參數(shù)1:類數(shù)組或可迭代的對象
參數(shù)2:新數(shù)組中的每個(gè)元素會執(zhí)行該回調(diào)函數(shù)(類似map函數(shù))
2.擴(kuò)展運(yùn)算符和keys()
const collectArr3 = [...Array(61)].map((_item,index) => index)
擴(kuò)展運(yùn)算符(...):將一個(gè)數(shù)組轉(zhuǎn)為用逗號分隔的參數(shù)序列媳拴。
const collectArr4 = [...Array(61).keys()]
Array.prototype.keys():遍歷數(shù)組的鍵名(索引),返回一個(gè)迭代器對象兆览。
如果要考慮瀏覽器兼容的情況屈溉,使用ES5語法
var collectArr5 = Object.keys(Array.apply(null, {length:61})).map(function (item) { return parseInt(item) });
var collectArr6 = Array.apply(null, Array(61)).map(function (_item, index) { return index } );