簡(jiǎn)介
數(shù)組、初始化、快速生成數(shù)組、內(nèi)存泄露
有時(shí)候會(huì)需要對(duì)數(shù)組進(jìn)行一些初始化,最常用到的便是 for 循環(huán):
let num = []; for (let i = 0; i < 10; i++) { // 做一些其他操作 // 或者返回一些值 num[i] = i; }
其實(shí)有一些簡(jiǎn)單好用的小技巧可以幫助我們優(yōu)雅的初始化數(shù)組:
Array.from在支持 ES6 的時(shí)候可以利用 Array.from() 來(lái)初始化數(shù)組:
Array.from({ length: 10 }, (val, index) => { // 做一些其他操作 // 或者返回一些值 return index; }) Array.from(new Array(10), (val, index)=> { // 做一些其他操作 // 或者返回一些值 return index; });Array.apply
在不支持 ES6 的時(shí)候可以利用 Array.apply() 來(lái)初始化數(shù)組:
Array.apply(null, {length: 10}).map(Function.call, (index, arr) => { // 做一些其他操作 // 或者返回一些值 return index; }); const num = Array.apply(null, {length: 5}).map(Function.call, Number); // 輸出 [0, 1, 2, 3, 4] console.log(num)spread
當(dāng)需要快速創(chuàng)建類似 [0, 1, 2, ...N] 這種數(shù)組時(shí)可以:
const num = [...Array(5).keys()]; // 輸出 [0, 1, 2, 3, 4] console.log(num)清空數(shù)組
除了初始化新的數(shù)組,對(duì)已有的數(shù)組進(jìn)行清空操作也算半個(gè)初始化。如果直接對(duì)變量賦予新值 list=[] 雖然說(shuō)以前清空了數(shù)組,但是舊值還放在內(nèi)存之中,沒(méi)被垃圾回收機(jī)制自動(dòng)回收的話算是 內(nèi)存泄露 了:
let first = [1,2,3]; let second = first; // 清空 first = []; // 輸出 [] console.log(first); // 輸出 [1, 2, 3] console.log(second);
不再用到的內(nèi)存,沒(méi)有及時(shí)釋放,就叫做內(nèi)存泄漏。
也可以利用 list.length = 0 來(lái)進(jìn)行操作可以銷毀掉數(shù)組里的所有內(nèi)容,也將影響到其他引用。例子:
let first = [1,2,3]; let second = first; // 清空 first.length = 0; // 輸出 [] console.log(first); // 輸出 [] console.log(second);一起成長(zhǎng)
在困惑的城市里總少不了并肩同行的 伙伴 讓我們一起成長(zhǎng)。
如果您想讓更多人看到文章可以點(diǎn)個(gè) 點(diǎn)贊。
如果您想激勵(lì)小二可以到 Github 給個(gè) 小星星。
如果您想與小二更多交流添加微信 m353839115。
本文原稿來(lái)自 PushMeTop
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/109242.html
showImg(https://segmentfault.com/img/remote/1460000018734296?w=900&h=500); 簡(jiǎn)介 可讀性、性能、Spread、Reduce 在 優(yōu)雅三連擊 中有同學(xué)提到了 可讀性 這個(gè)關(guān)鍵詞,就小二個(gè)人的觀點(diǎn) 在某個(gè)范圍內(nèi)使用比較常用到的小技巧,可以提升一定的可讀性,文中提到的短路運(yùn)算在初始化變量是提升可讀性的,并且在很多提倡優(yōu)化if 語(yǔ)句...
showImg(https://raw.githubusercontent.com/pushmetop/resource/master/30-seconds-for-everyday/insert-item-inside-an-array/poster.png); 簡(jiǎn)介
showImg(https://segmentfault.com/img/remote/1460000018771037?w=900&h=500); 簡(jiǎn)介 benchmark、基準(zhǔn)測(cè)試、jsPerf 在 優(yōu)雅插入數(shù)組 一文中大家最多的評(píng)論就是 能不能加個(gè)基準(zhǔn)測(cè)試。小二不是不喜歡加基準(zhǔn)測(cè)試而是現(xiàn)在硬件設(shè)備的性能越來(lái)越快了,有時(shí)候一些操作不是性能問(wèn)題的主要原因,當(dāng)然這不是我們不寫出好代碼的理由。 書寫...
簡(jiǎn)介 數(shù)組、CSV、表格、工具 showImg(https://segmentfault.com/img/bVbp3L5?w=900&h=500); 我們之前的兩期 數(shù)組轉(zhuǎn) CSV 表格數(shù)據(jù) 和 JSON 對(duì)象數(shù)組轉(zhuǎn)換 CSV 表格數(shù)據(jù) 中學(xué)習(xí)了轉(zhuǎn)化為 CSV 表格數(shù)據(jù)的代碼片段,今天就講講 如何把 CSV 表格數(shù)據(jù)轉(zhuǎn)換為 JSON 對(duì)象: // 該源碼來(lái)自于 https://30secondso...
showImg(https://segmentfault.com/img/remote/1460000018709378?w=900&h=500); 簡(jiǎn)介 短路運(yùn)算、逗號(hào)運(yùn)算、簡(jiǎn)化條件語(yǔ)句、初始化小技巧 昨天一個(gè)同學(xué)在 URL 大爆炸 問(wèn)了我一個(gè)問(wèn)題:這是什么寫法 (data[key] = value, data) 。平時(shí)在寫文章的時(shí)候會(huì)把這些技巧稍微提示一下,認(rèn)為大家都知道這些技巧,引起了小二的...
閱讀 2363·2021-11-16 11:52
閱讀 2338·2021-11-11 16:55
閱讀 765·2021-09-02 15:41
閱讀 2996·2019-08-30 15:54
閱讀 3156·2019-08-30 15:54
閱讀 2265·2019-08-29 15:39
閱讀 1520·2019-08-29 15:18
閱讀 981·2019-08-29 13:00