如何使用JavaScript快速創(chuàng)建一個1到100的數(shù)組
代碼示例:
let arr = [] // push方法 for(let i = 1,len=100;i<=100;i++){arr.push(i)} // or //循環(huán)賦值 for(let i = 1,len=100;i<=100;i++){arr[i-1]=i} // Array.from()方法 后面會有一點點的優(yōu)化 Array.from({length:101}, (v,k) => k)// or Array.from(Array(101), (v,k) =>k); Array.from(Array(101).keys()) arr.splice(0,1) // 使用遞歸實現(xiàn) // 當前值 // 最大長度 let arr = [] function setArray(current,maxLength,arr){ if(arr.length<maxLength){ arr[current-1] = current setArray(++current,maxLength,arr) }else{ arr.filter(i=>i)// 去除假值 empty } } setArray(1,100,arr) // 暫且不知道有沒有性能問題 // 在網(wǎng)上看到一些方法,也蠻好玩的,但是不知道來源 // 1 let arr = Array(100).toString().split(',').map((item,index)=>index)// 0-> 99 // 2 let i = 0; let timer = setInterval(function(){ arr[i] = i++; if(i>=100){ clearInterval(timer); console.log(arr); } },1); // 0-> 99 // 3 Object.keys(Array.apply(null, {length:100})).map(item=>+item);// 0-> 99 // 4 [...Array(100).keys()]// 0-> 99 [...Array.from({length:100}).keys()]// 0-> 99 // mdn 看見的 序列生成器(指定范圍) const range = (start, stop, step) => Array.from({ length: (stop - start) / step + 1}, (_, i) => + (i * step)); range(1,100,1)// 1-> 100 //優(yōu)化我上面寫的 Array.from({length:100},(_, i)=>1+(i)) // 1-> 100
我覺得看起來最舒服的是: Array.from({length:100},(_, i)=>1+(i))
前提知識:
Array.from()
Array.from(arrayLike[, mapFn[, thisArg]])
arrayLike
想要轉換成數(shù)組的偽數(shù)組對象或可迭代對象。
mapFn
可選如果指定了該參數(shù),新數(shù)組中的每個元素會執(zhí)行該回調函數(shù)。
thisArg
可選可選參數(shù),執(zhí)行回調函數(shù)
mapFn
時this
對象。返回值
一個新的
數(shù)組
實例。
用法:
- String 生成 數(shù)組
- Set 生成 數(shù)組
- Map 生成 數(shù)組
- 類數(shù)組 生成 數(shù)組
示例:從Map生成數(shù)組
const map = new Map([[1, 2], [2, 4], [4, 8]]); Array.from(map); // [[1, 2], [2, 4], [4, 8]] const mapper = new Map([['1', 'a'], ['2', 'b']]); Array.from(mapper.values()); // ['a', 'b']; Array.from(mapper.keys()); // ['1', '2'];
其他:
Array.from({length: 100}) or Array.from(Array(100)) // 都會生成 (100) [undefined,..., undefined]
數(shù)組實例方法keys()
keys()是ES6中新增的對鍵名的遍歷,返回一個遍歷器對象
apply(thisArg, [argsArray])
apply(thisArg, [argsArray])
參數(shù)
thisArg
必選的。在
func
函數(shù)運行時使用的this
值。請注意,this
可能不是該方法看到的實際值:如果這個函數(shù)處于非嚴格模式下,則指定為null
或undefined
時會自動替換為指向全局對象,原始值會被包裝。
argsArray
可選的。一個數(shù)組或者類數(shù)組對象,其中的數(shù)組元素將作為單獨的參數(shù)傳給
func
函數(shù)。如果該參數(shù)的值為null
或undefined
,則表示不需要傳入任何參數(shù)。從ECMAScript 5 開始可以使用類數(shù)組對象。返回值
調用有指定
this
值和參數(shù)的函數(shù)的結果。
補充:js中實現(xiàn)隨機獲取1-100的不重復的數(shù)組
<script type="text/javascript"> function getArr() { var i = 0; var arr = new Array(); var p; while (i < 100) { //生成隨機數(shù) var p = Math.floor(Math.random() * 100 + 1) if (arr.indexOf(p) == -1) { arr[i] = p; i++; } } return arr; } </script>
總結
到此這篇關于如何使用JavaScript快速創(chuàng)建一個1到100數(shù)組的文章就介紹到這了,更多相關JS快速創(chuàng)建1到100數(shù)組內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
swiper+echarts實現(xiàn)多個儀表盤左右滾動效果
這篇文章主要為大家詳細介紹了swiper+echarts實現(xiàn)多個儀表盤左右滾動效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-06-06JavaScript如何動態(tài)監(jiān)聽DOM元素高度詳解
這篇文章主要為大家詳細介紹了JavaScript如何動態(tài)監(jiān)聽DOM元素高度,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-07-07JavaScript數(shù)組的定義及數(shù)字操作技巧
這篇文章主要介紹了JavaScript數(shù)組的定義及數(shù)字操作技巧的相關資料,需要的朋友可以參考下2016-06-06