国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

原生js實現each方法實例代碼詳解

來源:懂視網 責編:小采 時間:2020-11-27 21:56:03
文檔

原生js實現each方法實例代碼詳解

原生js實現each方法實例代碼詳解:jquery里面有個each方法,將循環操作簡化、便捷。 隨后es出了個forEach方法,兩個雖然用法相近,但是不能處理對象類型。且無法通過return true達到continue效果。 此外還有個every方法,該方法雖然可以實現continue效果,但是在處理類數組與對象類型時
推薦度:
導讀原生js實現each方法實例代碼詳解:jquery里面有個each方法,將循環操作簡化、便捷。 隨后es出了個forEach方法,兩個雖然用法相近,但是不能處理對象類型。且無法通過return true達到continue效果。 此外還有個every方法,該方法雖然可以實現continue效果,但是在處理類數組與對象類型時

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

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

簡單實現:

// 通過字面量方式實現的函數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;
 }
 })();
 // 為數組或類數組時, 返回: index, value
 if(type === 'Array' || type === 'NodeList'){
 // 由于存在類數組NodeList, 所以不能直接調用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一下, 測試下數組、對象、類數組類型及中斷效果

數組類型

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); });

輸出如下:

 

類數組類型

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的屬性時,則
輸出警告,用于實現continue效果 console.log('存在鍵值為age,這家伙已經'+v+'歲了'); return true; } if(i === 'six' && v === '男'){//如果存在鍵值為age的屬性時,則輸出跳出,用于實現break效果 console.log('存在鍵值為six,是個男的,不用關注了~'); return false; } console.log(i + ': ' + v); });

輸出如下:

 

從結果可以看出來,each方法已經實現了jquery的each功能。且實現如此簡單~

隨筆一行 這是前端最好的時代, 這也是前端最壞的時代。 眾多前端框架滿天飛,隨著 jQuery 在前端行業的慢慢弱化,總是會有一種斯人遠去,何者慰籍的感覺。互勉吧,各位。

另推薦個表格組件 gridManager

總結

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

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

原生js實現each方法實例代碼詳解

原生js實現each方法實例代碼詳解:jquery里面有個each方法,將循環操作簡化、便捷。 隨后es出了個forEach方法,兩個雖然用法相近,但是不能處理對象類型。且無法通過return true達到continue效果。 此外還有個every方法,該方法雖然可以實現continue效果,但是在處理類數組與對象類型時
推薦度:
標簽: 方法 實現 js
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 国产免费全部免费观看 | 91久久国产综合精品 | 久久精品无码一区二区日韩av | 欧美精品亚洲精品日韩专区va | 北条麻妃一区 | 亚洲欧美高清 | 国产一级一片免费播放视频 | 九九福利 | 国产精品亚洲精品不卡 | 日韩 亚洲 欧美 中文 高清 | 在线观看国产一区二区三区 | 国产一区二区三区欧美 | 亚洲 欧美 中文字幕 | 国产成人精视频在线观看免费 | 国产美女白丝袜精品_a不卡 | 97精品高清一区二区三区 | 日韩免费高清视频网站 | 日韩精品欧美高清区 | 国内精品1区1区3区4区 | 色yeye在线观看 | 国内在线观看精品免费视频 | 欧美日韩亚洲国产一区二区三区 | 日韩欧美伦理 | 在线观看国产日韩 | 亚洲精品国产成人99久久 | 国产资源视频在线观看 | 欧美成人看片一区二区三区尤物 | 欧美激情亚洲一区中文字幕 | 久久99国产精一区二区三区 | 亚洲免费a| 久久久久亚洲精品成人网小说 | 亚洲欧洲综合在线 | 狠狠色狠狠色综合日日不卡 | 日韩专区欧美 | 亚洲 欧美 日韩在线 | 欧美一级色图 | 国产欧美成人一区二区三区 | 国内精品久久久久久久aa护士 | 特级一级全黄毛片免费 | 久久福利资源网站免费看 | 天堂va欧美ⅴa亚洲va一国产 |