整合營銷服務(wù)商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          js列表遍歷方法解讀

          js列表遍歷方法解讀

          avaScript提供了多種遍歷數(shù)組(或列表)的方法。以下是一些常用的方法及其解讀:

          1. for 循環(huán):
          var array=[1, 2, 3, 4, 5];  
            
          for (var i=0; i < array.length; i++) {  
            console.log(array[i]);  
          }

          解讀:這是最基礎(chǔ)的遍歷數(shù)組的方法。for循環(huán)從數(shù)組的第一個元素開始,一直到最后一個元素。我們使用i作為索引,每次循環(huán)時,i的值增加1,直到i的值等于array.length(數(shù)組的長度)。

          1. for...in 循環(huán):
          var array=[1, 2, 3, 4, 5];  
            
          for (var index in array) {  
            console.log(array[index]);  
          }

          解讀:for...in循環(huán)用于遍歷數(shù)組的所有可枚舉屬性,包括原型鏈上的屬性。這個方法并不保證按照元素在數(shù)組中的順序進行遍歷,因此通常不推薦用于遍歷數(shù)組。

          1. forEach() 方法:
          var array=[1, 2, 3, 4, 5];  
            
          array.forEach(function(value, index) {  
            console.log(value);  
          });

          解讀:forEach()方法按順序?qū)?shù)組的每個元素執(zhí)行一次提供的函數(shù)。這個方法不會返回值,但它會更新原數(shù)組(如果傳入的函數(shù)對元素進行了修改)。函數(shù)接收兩個參數(shù):當前元素的值和當前元素的索引。

          1. for...of 循環(huán):
          var array=[1, 2, 3, 4, 5];  
            
          for (var value of array) {  
            console.log(value);  
          }

          解讀:for...of循環(huán)用于遍歷可迭代對象(包括數(shù)組、字符串、Map、Set等)。在每次迭代中,當前元素的值為value,而其索引則無法直接獲取。如果你需要同時獲取值和索引,你可能需要使用forEach()或者基礎(chǔ)的for循環(huán)。

          1. map() 方法:
          var array=[1, 2, 3, 4, 5];  
          var squaredArray=array.map(function(value) {  
            return value * value;  
          });  
          console.log(squaredArray); // [1, 4, 9, 16, 25]
          

          解讀:map()方法創(chuàng)建一個新數(shù)組,其結(jié)果是該數(shù)組中的每個元素都調(diào)用一個提供的函數(shù)后返回的結(jié)果。這個方法返回一個新數(shù)組,不會修改原數(shù)組。這是函數(shù)式編程中常用的一個方法。

          述:在JavaScript中,終止`forEach`循環(huán)有多種方法。可以使用`return`語句直接退出回調(diào)函數(shù),或者通過拋出異常并在外部捕獲。另一種方式是使用`some`方法,它在滿足條件時終止循環(huán)。開發(fā)者可以根據(jù)具體情況選擇最適合的方法,靈活運用以提高代碼效率。

          在JavaScript中,forEach 是一個用于遍歷數(shù)組元素的方法,它通常是一個很好的選擇,但有時你可能希望在特定條件下終止循環(huán)。在下面,我將詳細列舉幾種在 forEach 循環(huán)中終止的方法,并提供相應的代碼示例。

          1. 使用return語句

          你可以在 forEach 回調(diào)函數(shù)中使用 return 語句來終止循環(huán)。當 return 被執(zhí)行時,它會立即退出當前回調(diào)函數(shù),從而終止循環(huán)。

          let numbers=[1, 2, 3, 4, 5];
          
          numbers.forEach(function (number) {
              console.log(number);
          
              if (number===3) {
                  return; // 終止循環(huán)
              }
          });
          

          2. 使用throw異常

          通過在回調(diào)函數(shù)中拋出一個異常,可以終止 forEach 循環(huán)。這需要在循環(huán)外部使用 try...catch 來捕獲異常,從而達到終止循環(huán)的目的。

          let numbers=[1, 2, 3, 4, 5];
          
          try {
              numbers.forEach(function (number) {
                  console.log(number);
          
                  if (number===3) {
                      throw new Error('Terminating the loop'); // 拋出異常終止循環(huán)
                  }
              });
          } catch (error) {
              console.error(error.message);
          }
          

          3. 使用some方法

          some 方法是一個更好的選擇,因為它在第一次滿足條件時就會終止循環(huán),并且返回一個布爾值表示是否有元素滿足條件。

          let numbers=[1, 2, 3, 4, 5];
          
          let conditionMet=false;
          
          numbers.some(function (number) {
              console.log(number);
          
              if (number===3) {
                  conditionMet=true;
                  return true; // 返回true終止循環(huán)
              }
          });
          
          if (conditionMet) {
              console.log('Condition met!');
          } else {
              console.log('Condition not met.');
          }
          

          這三種方法中,根據(jù)具體情況選擇適合的方式。return 語句簡單直觀,throw 異常更靈活但可能會增加復雜性,而 some 方法則是專為滿足條件即終止設(shè)計的。根據(jù)你的需求和代碼結(jié)構(gòu),選擇最合適的方式。

          S數(shù)組遍歷,基本就是for,for in ,foreach,forof,map等一些方法。做個筆記

          **for循環(huán)「性能最高的」

          for(var j=0; j < arr.length; j++) {
             //常用,這個就夠了
          }
          //優(yōu)化版for循環(huán)
          for(var j=0,len=arr.length; j < len; j++) {
             //使用臨時變量,將長度緩存起來,避免重復獲取數(shù)組長度,當數(shù)組較大時 優(yōu)化效果才會明顯
          }
          
          實項:
          for ( var  i=0;i<arrTmp.length;i++){
               console.log(i+ ": " +arrTmp[i])
          }
          
          //實例
          var stemItem="",arrItem=r.data.metas.choices;  
          for (let index=0; index < arrItem.length; index++) {
            stemItem +='<div><input type="checkbox" id="'+index+'">
            <label for="'+index+'">'+arrItem[index]+'</label></div>';
          }

          forin 循環(huán)

          for(j in arr) {
            //很多人用,但是性能分析,顯示它效率最低 
          }
          for ( var  i  in  objTmp){
               console.log(i+ ": " +objTmp[i])
          }

          **foreach循環(huán)

          //forEach遍歷數(shù)組,三個參數(shù)依次是數(shù)組元素、索引、數(shù)組本身
          arrTmp.forEach( function (value,index,array){
               console.log(value+ "," +index+ "," +array[index])
          })
          
          //Jquery 的$.each() 
          數(shù)組
          	$.each([52, 97], function(index, value) {
            		alert(index + ': ' + value); //index是索引-0:52;1:97
          });
          
          對象
          var obj={
          		"ff": "在",
          		"性別": 1
          	};
          $.each( obj, function( key, value ) {
            alert( key + ": " + value );//ff:在
          });
          

          forof遍歷(需要es6支持)


          主站蜘蛛池模板: 亚洲AV日韩AV一区二区三曲| 国产中文字幕一区| 天堂不卡一区二区视频在线观看 | 狠狠色成人一区二区三区| 亚洲国模精品一区| 国产精品毛片VA一区二区三区 | 亚洲综合无码一区二区三区 | 国产精品高清一区二区三区| 国产激情一区二区三区小说 | 无码av人妻一区二区三区四区| 亚洲狠狠狠一区二区三区| 亚洲AV无码国产一区二区三区| 国产一区二区三区日韩精品| 熟女性饥渴一区二区三区| 国产韩国精品一区二区三区久久| 在线不卡一区二区三区日韩| 久久国产精品一区| 亚洲sm另类一区二区三区| 亚洲日本中文字幕一区二区三区| 制服丝袜一区在线| jizz免费一区二区三区| 性无码免费一区二区三区在线| 国产萌白酱在线一区二区| 久久亚洲国产精品一区二区| 成人一区专区在线观看 | 中文字幕亚洲一区| 一区二区无码免费视频网站| 岛国精品一区免费视频在线观看| 亚洲国产情侣一区二区三区| 精品亚洲一区二区三区在线观看| 亚洲色精品VR一区区三区 | 任你躁国产自任一区二区三区| 国产自产对白一区| 国产一区二区三区不卡观| 国产福利在线观看一区二区| 在线播放国产一区二区三区 | 久久99精品波多结衣一区| 久久人妻无码一区二区| 国产成人精品一区二区三区免费| 国产伦精品一区二区三区在线观看| 无码人妻少妇色欲AV一区二区|