本篇文章給大家分享的是有關(guān)使用JavaScript怎么批量創(chuàng)建數(shù)組,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
JavaScript有許多批量創(chuàng)建數(shù)組的方法,為了衡量它們的性能,我分別使用不同的方法創(chuàng)建一個(gè)長度為100000的數(shù)組,且鍵和值相等。同時(shí),我定義了下面這個(gè)函數(shù)用來測(cè)量創(chuàng)建數(shù)組所耗費(fèi)的時(shí)間:
function t(fn) { var start = Date.now(); fn.call(this); var end = Date.now(); return (end - start) + 'ms'; }
以下為常用的幾個(gè)創(chuàng)建數(shù)組的方法以及它們所耗費(fèi)的時(shí)間:
使用join和split
該方法把大量時(shí)間耗費(fèi)在了map操作上,去掉map后只需要2ms
使用apply
這里用到了一個(gè){ length: 100000 }偽數(shù)組,NodeList和arguments都是偽數(shù)組(array-like object),它們都不是真正意義上的數(shù)組,而是帶有"length屬性"并且同時(shí)具備"索引屬性"的對(duì)象,不能直接使用數(shù)組的那些方法,而apply和call卻可以接受這種偽數(shù)組。我們平時(shí)在用的Array.prototype.slice( arguments)就是基于這個(gè)原理。
這里把長度為100000的偽數(shù)組傳遞給Array函數(shù),構(gòu)造出了一個(gè)長度為100000的數(shù)組,然后再用map賦值。有同學(xué)可能要問了,為什么不直接Array(100000)生成數(shù)組,這是因?yàn)橥ㄟ^Array(100000)生成的數(shù)組每個(gè)值都為undefined,無法通過map遍歷。
使用Array.from()
這是ES6新出的方法,可以將偽數(shù)組直接轉(zhuǎn)換為數(shù)組
如果把偽數(shù)組換成數(shù)組,速度下降了很多。
使用Array.fill()
先用Array.fill()填充數(shù)組,之后再通過map依個(gè)賦值
使用for循環(huán)
我表示當(dāng)時(shí)就驚呆了,還一直在檢查是不是少打個(gè)0. 我表示不服,想用push試一下
以上就是使用JavaScript怎么批量創(chuàng)建數(shù)組,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司行業(yè)資訊頻道。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站newbst.com,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
當(dāng)前題目:使用JavaScript怎么批量創(chuàng)建數(shù)組-創(chuàng)新互聯(lián)
網(wǎng)頁路徑:http://newbst.com/article48/hhihp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、品牌網(wǎng)站建設(shè)、Google、網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站策劃
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)