亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

用 new Function 提高運(yùn)行效率

kid143 / 735人閱讀

為了減小列表數(shù)據(jù)的尺寸,后端把json處理成數(shù)組返回(類似于csv)。格式如下:

[
    ["basqty","brandfullname","fullname","gid"],
    [470,"金富士","【今日爆款】#金富士土斯動(dòng)物餅干香蕉牛奶味50g",43945919],
    [470,"金富士","【今日爆款】#金富士土斯動(dòng)物餅干香蕉牛奶味50g",43945919],
    ...
]

前端獲取到數(shù)據(jù)后解析,格式如下:

[
    {
        "basqty":470,
        "brandfullname":"金富士",
        "fullname":"【今日爆款】#金富士土斯動(dòng)物餅干香蕉牛奶味50g",
        "gid":"【今日爆款】#金富士土斯動(dòng)物餅干香蕉牛奶味50g"
    },
    {
        "basqty":470,
        "brandfullname":"金富士",
        "fullname":"【今日爆款】#金富士土斯動(dòng)物餅干香蕉牛奶味50g",
        "gid":"【今日爆款】#金富士土斯動(dòng)物餅干香蕉牛奶味50g"
    },
    ...
]

優(yōu)化前正常的解析代碼:

function array2json(array) {
    var keys = array.shift();
    return array.length ? array.map(function (ary) {
        var row= {};
        keys.forEach(function (key, i) {
            row[key] = ary[i]
        })
        return row
    }) : []
}

運(yùn)行一個(gè) 24000 行,每行 94 個(gè)字段的數(shù)組,大概需要 400 毫秒

優(yōu)化思路:省去中間 forEach 遍歷賦值

function array2json(array) {
    var keys = array.shift();
    return array.length ? array.map(function (ary) {
        //如果能夠省去中間 forEach 遍歷賦值效率會(huì)高很多
        return {
            "basqty":ary[0],
            "brandfullname":ary[1],
            ...
        }
    }) : []
}

用 new Function 來(lái)構(gòu)造中間的 return 對(duì)象

function listArrayTolistJson(array) {
    var keys = array.shift();
    return array.length ? array.map(new Function("ary", "return {" + keys.map(function (key, i) { return """ + key + "":ary[" + i + "]" }).join(",") + "}")) : []
}

運(yùn)行截圖,大概快了 7 倍

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/100151.html

相關(guān)文章

  • [ JS 進(jìn)階 ] 如何改進(jìn)代碼性能 (3)

    摘要:這樣就改進(jìn)了代碼的性能,看代碼將保存在局部變量中所以啊,我們?cè)陂_(kāi)發(fā)中,如果在函數(shù)中會(huì)經(jīng)常用到全局變量,把它保存在局部變量中避免使用語(yǔ)句用語(yǔ)句延長(zhǎng)了作用域,查找變量同樣費(fèi)時(shí)間,這個(gè)我們一般不會(huì)用到,所以不展開(kāi)了。 本來(lái)在那片編寫可維護(hù)性代碼文章后就要總結(jié)這篇代碼性能文章的,耽擱了幾天,本來(lái)也是決定每天都要更新一篇文章的,因?yàn)橐郧扒废绿鄸|西沒(méi)總結(jié),學(xué)過(guò)的東西沒(méi)去總結(jié)真的很快就忘記了...

    young.li 評(píng)論0 收藏0
  • 你不知道的Virtual DOM(五):自定義組件

    摘要:現(xiàn)在流行的前端框架都支持自定義組件,組件化開(kāi)發(fā)已經(jīng)成為提高前端開(kāi)發(fā)效率的銀彈。二對(duì)自定義組件的支持要想正確的渲染組件,第一步就是要告訴某個(gè)標(biāo)簽是自定義組件。下面的例子里,就是一個(gè)自定義組件。解決了識(shí)別自定義標(biāo)簽的問(wèn)題,下一步就是定義標(biāo)簽了。 歡迎關(guān)注我的公眾號(hào)睿Talk,獲取我最新的文章:showImg(https://segmentfault.com/img/bVbmYjo); 一、...

    lk20150415 評(píng)論0 收藏0
  • 開(kāi)發(fā)工具心得:如何 10 倍提高你的 Webpack 構(gòu)建效率

    摘要:在項(xiàng)目架構(gòu)中這兩個(gè)東西基本成為了標(biāo)配,但的模塊必須在使用前經(jīng)過(guò)的構(gòu)建后文稱為才能在瀏覽器端使用,而每次修改也都需要重新構(gòu)建后文稱為才能生效,如何提高的構(gòu)建效率成為了提高開(kāi)發(fā)效率的關(guān)鍵之一。 0. 前言 showImg(https://segmentfault.com/img/remote/1460000005770045); 圖1:ES6 + Webpack + React + Bab...

    用戶83 評(píng)論0 收藏0
  • 寫Laravel測(cè)試代碼(一)

    摘要:在中可以在設(shè)置數(shù)據(jù)庫(kù)重裝操作這樣就可以在每一個(gè)中定義本次污染的數(shù)據(jù)表,保證下一個(gè)在運(yùn)行前重刷下被污染的數(shù)據(jù)表,如這樣會(huì)極大提高數(shù)據(jù)庫(kù)測(cè)試效率,不推薦使用給出的和,效率并不高。 本文主要探討寫數(shù)據(jù)庫(kù)測(cè)試。 寫laravel程序時(shí),除了寫生產(chǎn)代碼,還需要寫測(cè)試代碼。其中,寫數(shù)據(jù)庫(kù)測(cè)試比較麻煩,因?yàn)樾枰槍?duì)每一個(gè)test case需要建立好數(shù)據(jù)集,該次test case污染的數(shù)據(jù)表還需要恢復(fù)...

    MageekChiu 評(píng)論0 收藏0
  • 從零開(kāi)始寫一個(gè)npm包,一鍵生成react組件(偷懶==提高效率)

    摘要:后言有了我們可以做很多很多的事情以后開(kāi)發(fā)新模塊的時(shí)候就可以偷懶了純手打給個(gè)贊可好模版 前言 最近寫項(xiàng)目開(kāi)發(fā)新模塊的時(shí)候,每次寫新模塊的時(shí)候需要?jiǎng)?chuàng)建一個(gè)組件的時(shí)候(包含組件css,index.js,組件js),就只能會(huì)拷貝其他組件修改名稱 ,但是寫了1-2個(gè)后發(fā)現(xiàn)效率太低了,而且極容易出錯(cuò),所以自己寫一個(gè)npm包來(lái)減少工作量,下面就一步一步來(lái)創(chuàng)建一個(gè)屬于自己的npm倉(cāng)庫(kù) 首先第一步創(chuàng)建一...

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

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

0條評(píng)論

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