最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

原生js實現(xiàn)each方法實例代碼詳解

 更新時間:2019年05月27日 16:34:28   投稿:mrr  
這篇文章主要介紹了原生js實現(xiàn)each方法,需要的朋友可以參考下

jquery里面有個each方法,將循環(huán)操作簡化、便捷。 隨后es出了個forEach方法,兩個雖然用法相近,但是不能處理對象類型。且無法通過return true達(dá)到continue效果。 此外還有個every方法,該方法雖然可以實現(xiàn)continue效果,但是在處理類數(shù)組與對象類型時,完全無用。

在不使用 jquery 的 each 方法時,該如何處理;或者說用原生如何來實現(xiàn)? 前些前寫了個類庫: jTool , 其中就實現(xiàn)了該方法。

簡單實現(xiàn):

// 通過字面量方式實現(xiàn)的函數(shù)each
var each = function(object, callback){
 var type = (function(){
   switch (object.constructor){
   case Object:
    return 'Object';
    break;
   case Array:
    return 'Array';
    break;
   case NodeList:
    return 'NodeList';
    break;
   default:
    return 'null';
    break;
  }
 })();
 // 為數(shù)組或類數(shù)組時, 返回: index, value
 if(type === 'Array' || type === 'NodeList'){
  // 由于存在類數(shù)組NodeList, 所以不能直接調(diào)用every方法
  [].every.call(object, function(v, i){
   return callback.call(v, i, v) === false ? false : true;
  });
 }
 // 為對象格式時,返回:key, value
 else if(type === 'Object'){
  for(var i in object){
   if(callback.call(object[i], i, object[i]) === false){
    break;
   }
  }
 }
}

我們來try一下, 測試下數(shù)組、對象、類數(shù)組類型及中斷效果

數(shù)組類型

var _array = [1,2,3,4];
each(_array, function(i, v){
 console.log(i + ': ' + v);
});

輸出如下:

 

對象類型

var object = {a:1, b:2, c:3} each(object, function(i, v){ console.log(i + ': ' + v); });

輸出如下:

 

類數(shù)組類型

var ele = document.querySelectorAll('div');
each(ele, function(i, v){
 console.log(i + ': ' + v);
});

輸出如下:

 

增加中斷條件

var object2 = {name:'baukh', age: '29', six:'男', url: 'www.lovejavascript.com',}
each(object2, function(i, v){
 if(i === 'age'){ //如果存在鍵值為age的屬性時,則輸出警告,用于實現(xiàn)continue效果
 console.log('存在鍵值為age,這家伙已經(jīng)'+v+'歲了');
 return true;
 }
 if(i === 'six' && v === '男'){//如果存在鍵值為age的屬性時,則輸出跳出,用于實現(xiàn)break效果
 console.log('存在鍵值為six,是個男的,不用關(guān)注了~');
 return false;
 }
 console.log(i + ': ' + v);
});

輸出如下:

 

從結(jié)果可以看出來,each方法已經(jīng)實現(xiàn)了jquery的each功能。且實現(xiàn)如此簡單~

隨筆一行 這是前端最好的時代, 這也是前端最壞的時代。 眾多前端框架滿天飛,隨著 jQuery 在前端行業(yè)的慢慢弱化,總是會有一種斯人遠(yuǎn)去,何者慰籍的感覺?;ッ惆桑魑?。

另推薦個表格組件 gridManager

總結(jié)

以上所述是小編給大家介紹的原生js實現(xiàn)each方法實例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • jsTree事件和交互以及插件plugins詳解

    jsTree事件和交互以及插件plugins詳解

    這篇文章主要為大家詳細(xì)介紹了jsTree事件和交互以及插件plugins的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • JavaScript拖拽、碰撞、重力及彈性運動實例分析

    JavaScript拖拽、碰撞、重力及彈性運動實例分析

    這篇文章主要介紹了JavaScript拖拽、碰撞、重力及彈性運動實現(xiàn)方法,涉及JavaScript數(shù)學(xué)運算結(jié)合時間函數(shù)實現(xiàn)運動效果的相關(guān)技巧,需要的朋友可以參考下
    2016-01-01
  • JavaScript設(shè)計模式之單例模式原理與用法實例分析

    JavaScript設(shè)計模式之單例模式原理與用法實例分析

    這篇文章主要介紹了JavaScript設(shè)計模式之單例模式原理與用法,結(jié)合實例形式分析了單例模式的原理、命名空間的使用、閉包、惰性單例形式以及單例模式的基本應(yīng)用,需要的朋友可以參考下
    2018-07-07
  • JS獲取鼠標(biāo)坐標(biāo)位置實例分析

    JS獲取鼠標(biāo)坐標(biāo)位置實例分析

    這篇文章主要介紹了JS獲取鼠標(biāo)坐標(biāo)位置的方法,結(jié)合實例形式分析了JavaScript常見的獲取鼠標(biāo)頁面、屏幕等坐標(biāo)位置的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2016-01-01
  • [Bootstrap-插件使用]Jcrop+fileinput組合實現(xiàn)頭像上傳功能實例代碼

    [Bootstrap-插件使用]Jcrop+fileinput組合實現(xiàn)頭像上傳功能實例代碼

    這篇文章主要介紹了[Bootstrap-插件使用]Jcrop+fileinput組合實現(xiàn)頭像上傳功能實例代碼,非常具有實用價值,需要的朋友可以參考下。
    2016-12-12
  • Webstorm開發(fā)uni-app項目詳細(xì)圖文教程

    Webstorm開發(fā)uni-app項目詳細(xì)圖文教程

    這篇文章主要介紹了使用WebStorm和UniappTool創(chuàng)建和運行uni-app項目的相關(guān)資料,包括配置微信開發(fā)者工具和運行項目,同時提到了創(chuàng)建新頁面和使用uniapptool存在的弊端,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2024-11-11
  • js實現(xiàn)京東秒殺倒計時功能

    js實現(xiàn)京東秒殺倒計時功能

    這篇文章主要為大家詳細(xì)介紹了js實現(xiàn)京東秒殺倒計時功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • D3.js入門之D3?DataJoin的使用

    D3.js入門之D3?DataJoin的使用

    DataJoin(數(shù)據(jù)連接)是D3中很重要的一個概念。D3是基于數(shù)據(jù)操作DOM的js庫,DataJoin使我們能夠根據(jù)現(xiàn)有?HTML?文檔中的數(shù)據(jù)集注入、修改和刪除元素。本文主要和大家詳細(xì)聊聊DataJoin的使用,感興趣的可以學(xué)習(xí)一下
    2022-11-11
  • js重寫方法的簡單實現(xiàn)

    js重寫方法的簡單實現(xiàn)

    下面小編就為大家?guī)硪黄猨s重寫方法的簡單實現(xiàn)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-07-07
  • 簡單使用webpack打包文件的實現(xiàn)

    簡單使用webpack打包文件的實現(xiàn)

    這篇文章主要介紹了簡單使用webpack打包文件的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10

最新評論

庐江县| 久治县| 余江县| 湖南省| 盘锦市| 天全县| 班戈县| 房产| 泰宁县| 信丰县| 顺义区| 新巴尔虎右旗| 凤庆县| 土默特右旗| 湟中县| 桃江县| 扶余县| 林芝县| 叙永县| 鹿邑县| 河津市| 和平县| 嘉鱼县| 上栗县| 滦平县| 涟源市| 昂仁县| 驻马店市| 耿马| 贺州市| 江城| 山东省| 云梦县| 军事| 交口县| 盘锦市| 丹东市| 靖宇县| 溧水县| 邢台市| 江城|