国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

每日 30 秒 ? 優雅初始化數組

pcChao / 2720人閱讀

簡介
數組、初始化、快速生成數組、內存泄露

有時候會需要對數組進行一些初始化,最常用到的便是 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

相關文章

  • 每日 30 ? 該不該優雅

    showImg(https://segmentfault.com/img/remote/1460000018734296?w=900&h=500); 簡介 可讀性、性能、Spread、Reduce 在 優雅三連擊 中有同學提到了 可讀性 這個關鍵詞,就小二個人的觀點 在某個范圍內使用比較常用到的小技巧,可以提升一定的可讀性,文中提到的短路運算在初始化變量是提升可讀性的,并且在很多提倡優化if 語句...

    JohnLui 評論0 收藏0
  • 每日 30 ? 優雅插入數組

    showImg(https://raw.githubusercontent.com/pushmetop/resource/master/30-seconds-for-everyday/insert-item-inside-an-array/poster.png); 簡介

    genefy 評論0 收藏0
  • 每日 30 ? 誰敢與我一戰

    showImg(https://segmentfault.com/img/remote/1460000018771037?w=900&h=500); 簡介 benchmark、基準測試、jsPerf 在 優雅插入數組 一文中大家最多的評論就是 能不能加個基準測試。小二不是不喜歡加基準測試而是現在硬件設備的性能越來越快了,有時候一些操作不是性能問題的主要原因,當然這不是我們不寫出好代碼的理由。 書寫...

    Dionysus_go 評論0 收藏0
  • 每日 30 ? CSV 表格數據轉換 JSON 對象

    簡介 數組、CSV、表格、工具 showImg(https://segmentfault.com/img/bVbp3L5?w=900&h=500); 我們之前的兩期 數組轉 CSV 表格數據 和 JSON 對象數組轉換 CSV 表格數據 中學習了轉化為 CSV 表格數據的代碼片段,今天就講講 如何把 CSV 表格數據轉換為 JSON 對象: // 該源碼來自于 https://30secondso...

    livem 評論0 收藏0
  • 每日 30 ? 優雅三連擊

    showImg(https://segmentfault.com/img/remote/1460000018709378?w=900&h=500); 簡介 短路運算、逗號運算、簡化條件語句、初始化小技巧 昨天一個同學在 URL 大爆炸 問了我一個問題:這是什么寫法 (data[key] = value, data) 。平時在寫文章的時候會把這些技巧稍微提示一下,認為大家都知道這些技巧,引起了小二的...

    Rocture 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<