成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

每日 30 秒 ? 優(yōu)雅初始化數(shù)組

pcChao / 2729人閱讀

簡(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

相關(guān)文章

  • 每日 30 ? 該不該優(yōu)雅

    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ǔ)句...

    JohnLui 評(píng)論0 收藏0
  • 每日 30 ? 優(yōu)雅插入數(shù)組

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

    genefy 評(píng)論0 收藏0
  • 每日 30 ? 誰(shuí)敢與我一戰(zhà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)然這不是我們不寫出好代碼的理由。 書寫...

    Dionysus_go 評(píng)論0 收藏0
  • 每日 30 ? CSV 表格數(shù)據(jù)轉(zhuǎn)換 JSON 對(duì)象

    簡(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...

    livem 評(píng)論0 收藏0
  • 每日 30 ? 優(yōu)雅三連擊

    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)為大家都知道這些技巧,引起了小二的...

    Rocture 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<