如何使用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()方法 后面會有一點(diǎn)點(diǎn)的優(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)
// 使用遞歸實(shí)現(xiàn)
// 當(dāng)前值
// 最大長度
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想要轉(zhuǎn)換成數(shù)組的偽數(shù)組對象或可迭代對象。
mapFn可選如果指定了該參數(shù),新數(shù)組中的每個元素會執(zhí)行該回調(diào)函數(shù)。
thisArg可選可選參數(shù),執(zhí)行回調(diào)函數(shù)
mapFn時this對象。返回值
一個新的
數(shù)組實(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ù)組實(shí)例方法keys()
keys()是ES6中新增的對鍵名的遍歷,返回一個遍歷器對象
apply(thisArg, [argsArray])
apply(thisArg, [argsArray])
參數(shù)
thisArg必選的。在
func函數(shù)運(yùn)行時使用的this值。請注意,this可能不是該方法看到的實(shí)際值:如果這個函數(shù)處于非嚴(yán)格模式下,則指定為null或undefined時會自動替換為指向全局對象,原始值會被包裝。
argsArray可選的。一個數(shù)組或者類數(shù)組對象,其中的數(shù)組元素將作為單獨(dú)的參數(shù)傳給
func函數(shù)。如果該參數(shù)的值為null或undefined,則表示不需要傳入任何參數(shù)。從ECMAScript 5 開始可以使用類數(shù)組對象。返回值
調(diào)用有指定
this值和參數(shù)的函數(shù)的結(jié)果。
補(bǔ)充:js中實(shí)現(xiàn)隨機(jī)獲取1-100的不重復(fù)的數(shù)組
<script type="text/javascript">
function getArr() {
var i = 0;
var arr = new Array();
var p;
while (i < 100) {
//生成隨機(jī)數(shù)
var p = Math.floor(Math.random() * 100 + 1)
if (arr.indexOf(p) == -1) {
arr[i] = p;
i++;
}
}
return arr;
}
</script>
總結(jié)
到此這篇關(guān)于如何使用JavaScript快速創(chuàng)建一個1到100數(shù)組的文章就介紹到這了,更多相關(guān)JS快速創(chuàng)建1到100數(shù)組內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
用javascript關(guān)閉本窗口不彈出詢問框的方法
ie中用close關(guān)閉非open打開的窗口時回彈出一個對話框詢問用戶,怎么去掉這個框呢,在window.close之前加上window.top.opener = null就可以了2014-09-09
深入理解 webpack 文件打包機(jī)制(小結(jié))
這篇文章主要介紹了深入理解 webpack 文件打包機(jī)制(小結(jié)),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-01-01
讓瀏覽器非阻塞加載javascript的幾種方法小結(jié)
通常大多數(shù)瀏覽器是并行下載資源的,但由于外部腳本的特殊性例如通過腳本改變文檔的DOM結(jié)構(gòu)、腳本之間的存在依賴關(guān)系、使用document.write 向頁面輸出HTML等。2011-04-04
js刪除數(shù)組元素、清空數(shù)組的簡單方法(必看)
下面小編就為大家?guī)硪黄猨s刪除數(shù)組元素、清空數(shù)組的簡單方法(必看)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-07-07
JavaScript繼承的實(shí)現(xiàn)方式詳解
JavaScript 是一門基于原型的語言,它的繼承機(jī)制與傳統(tǒng)的基于類的面向?qū)ο缶幊逃兴煌?盡管 ES6 引入了 class 語法,但本質(zhì)上仍然是基于原型鏈的繼承,本文將詳細(xì)介紹 JavaScript 繼承的幾種實(shí)現(xiàn)方式,需要的朋友可以參考下2025-03-03
JavaScript實(shí)現(xiàn)簡單省市聯(lián)動
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)簡單省市聯(lián)動,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-10-10

