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