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

資訊專欄INFORMATION COLUMN

js--遍歷數組和對象方法及其效率--for-forof--foreach--forin

ThinkSNS / 2701人閱讀

摘要:數組優化版優化版谷歌版本正式版本位優化版火狐版本優化版結論這是一個尷尬的結論,谷歌火狐,同樣是最新版本或許谷歌才是王道,火狐跳舞吧,顫抖吧,你也太慢了吧,以谷歌為準相對來說作為新的遍歷方法具有可觀的效率對象

數組
    var arr = new Array(10000000);
    var arr1 = [];
    var arr2 = [];
    var arr3 = [];
    var arr4 = [];
    var arr5 = [];
    var arr6 = [];
 
    arr.fill(1);
 
    console.time("for優化版");
    for(var i = 0,len = arr.length;i < len;i ++){
        arr1.push(arr[i]);
    }
    console.timeEnd("for優化版");
 
    //for
    console.time("for");
    for(var i = 0;i < arr.length;i ++){
        arr2.push(arr[i]);
    }
    console.timeEnd("for");
 
    //forEach
    console.time("forEach");
    arr.forEach(function(val){
        arr3.push(val);
    });
    console.timeEnd("forEach");
 
    //for in
    console.time("for in");
    for(var b in arr){
        arr4.push(arr[b]);
    }
    console.timeEnd("for in");
 
    //map
    console.time("map");
    arr.map(function(val){
        arr5.push(val);
    });
    console.timeEnd("map");
 
    //for of
    console.time("for of");
    for(var d of arr){
        arr6.push(arr[d]);
    }
    console.timeEnd("for of");
谷歌 版本 70.0.3538.110(正式版本) (64 位):
for優化版: 221.882080078125ms
for     : 1106.947998046875ms
forEach : 366.0771484375ms
forin   : 3758.628173828125ms
map     : 2020.76416015625ms
forof   : 1721.920166015625ms
 火狐 版本 63.03 :
for優化版: 9959ms
for      : 10192ms 
forEach  : 1286ms
forin    : 9261ms
map      : 1776ms
forof    : 6659ms

結論

   這是一個尷尬的結論,谷歌vs火狐,同樣是最新版本 或許谷歌才是王道,火狐跳舞吧,顫抖吧,你也太慢了吧, 以谷歌為準相對來說forof作為新的ES6遍歷方法具有可觀的效率
對象
        var obj = {};
    for(var i = 0,j = 10000000;i < j;i ++){
        obj[i] = i;
    }
    console.log(obj);
    var obj1 = {};
    var obj2 = {};
    var obj3 = {};
    var obj4 = {};
    var obj5 = {};
    var obj6 = {};
    console.time("foreach");
    Object.keys(obj).forEach(function(key){
//             obj1[key] = obj[key];
    });
    console.timeEnd("foreach");
    console.time("forin");
    for(var key in obj) {
//             obj2[key] = obj[key];
    }
    console.timeEnd("forin");
    console.time("getOwnPropertyNames");
    Object.getOwnPropertyNames(obj).forEach(function(key){
//             obj3[key] = obj[key];
    });
    console.timeEnd("getOwnPropertyNames");
    console.time("Reflect");
    Reflect.ownKeys(obj).forEach(function(key){
//             obj4[key] = obj[key];
    });        
    console.timeEnd("Reflect");
    console.log("---------------------------------------------------")
    console.time("forofentry");
    for (let [key, value] of Object.entries(obj)) {
//             obj5[key] =  value;
    }
    console.timeEnd("forofentry");
    console.time("forofkey");
    for (let key of Object.keys(obj)) {
//             obj6[key] =  obj[key];
    }
    console.timeEnd("forofkey");
--------------------- 
谷歌 版本 70.0.3538.110(正式版本) (64 位):
foreach            : 3097.0302734375ms
forin              : 2746.07666015625ms
getOwnPropertyNames: 7264.22412109375ms
Reflect            : 7151.320068359375ms
       ----------------------------------
forofentry         : 16713.181884765625ms
forofkey           : 5213.873046875ms
火狐 版本 63.03 :
foreach            : 727ms
forin              : 3409ms 
getOwnPropertyNames: 775ms
Reflect            : 749ms
       ----------------------------------
forofentry         : 6950ms
forofkey           : 1274ms

結論

   這是一個尷尬的結論,谷歌vs火狐,同樣是最新版本 有點尷尬, 以谷歌為準相對來說forin具有可觀的效率

結論

   遍歷數組有優化版的for循環,遍歷對象用forin

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/99734.html

相關文章

  • 第十一章 持有對象

    摘要:允許從任一方向來遍歷對象,并在遍歷迭代過程中進行修改該對象,還能獲得迭代器的當前位置。這個構造函數是將返回了一個對象給,這也是的存儲實現原理。 一、容器產生的原因   1.數組的缺點:大小一旦給定就無法更改,除非復制到一個新的數組中,開銷大;而容器類都可以自動地調整自己的尺寸?! ?.容器功能的多樣性:容器可以實現各種不同要求,如按不同依據將元素進行排序或者保證容器內無重復元素等等。關...

    archieyang 評論0 收藏0
  • 前端面試題總結

    摘要:工作中總結的一些比較重要的前端技能,覺得在面試中比較合適提問,即能查看出面試者的技術功底,又能考察其知識體系的廣度。異步編程的考察,其關鍵字的使用,與的關系,同時可以深入考察總共有幾種異步編程的方式。 工作中總結的一些比較重要的前端技能,覺得在面試中比較合適提問,即能查看出面試者的技術功底,又能考察其知識體系的廣度。適用于應屆生和工作年限兩年下的同學,掌握下面的知識基本滿足工作需求了。...

    wuyangnju 評論0 收藏0
  • 前端面試題總結

    摘要:工作中總結的一些比較重要的前端技能,覺得在面試中比較合適提問,即能查看出面試者的技術功底,又能考察其知識體系的廣度。異步編程的考察,其關鍵字的使用,與的關系,同時可以深入考察總共有幾種異步編程的方式。 工作中總結的一些比較重要的前端技能,覺得在面試中比較合適提問,即能查看出面試者的技術功底,又能考察其知識體系的廣度。適用于應屆生和工作年限兩年下的同學,掌握下面的知識基本滿足工作需求了。...

    yangrd 評論0 收藏0
  • [ JS 進階 ] 如何改進代碼性能 (3)

    摘要:這樣就改進了代碼的性能,看代碼將保存在局部變量中所以啊,我們在開發中,如果在函數中會經常用到全局變量,把它保存在局部變量中避免使用語句用語句延長了作用域,查找變量同樣費時間,這個我們一般不會用到,所以不展開了。 本來在那片編寫可維護性代碼文章后就要總結這篇代碼性能文章的,耽擱了幾天,本來也是決定每天都要更新一篇文章的,因為以前欠下太多東西沒總結,學過的東西沒去總結真的很快就忘記了...

    young.li 評論0 收藏0

發表評論

0條評論

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