JavaScript生成連續(xù)不間斷的數(shù)組

如題,Javascript如何生成一個0-60(任意長度)的數(shù)組?
最容易理解的方式就是通過for循環(huán)往一個空數(shù)組添加元素。

var collectArr = [];
for (var i = 0; i <= 60; i++) {
  collectArr.push(i);
}
console.log(collectArr);

問題是解決了,但是這樣寫不簡潔明了,寫在項目中還略顯累贅,有其他方式實現(xiàn)嗎?有的。

不考慮瀏覽器兼容的情況下,直接使用ES6語法是最快速的。

1.Array.from()

const collectArr1 = Array.from(Array(61), (_val, index) => index)
const collectArr2 = Array.from({ length: 61 }, (_val, index) => index)

對一個類似數(shù)組或可迭代對象創(chuàng)建一個新的,淺拷貝的數(shù)組實例。
參數(shù)1:類數(shù)組或可迭代的對象
參數(shù)2:新數(shù)組中的每個元素會執(zhí)行該回調(diào)函數(shù)(類似map函數(shù))

2.擴展運算符和keys()

const collectArr3 = [...Array(61)].map((_item,index) => index)

擴展運算符(...):將一個數(shù)組轉(zhuǎn)為用逗號分隔的參數(shù)序列。

const collectArr4 = [...Array(61).keys()]

Array.prototype.keys():遍歷數(shù)組的鍵名(索引),返回一個迭代器對象。

如果要考慮瀏覽器兼容的情況,使用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 } );
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容