遍曆數組的常用方法

来源:https://www.cnblogs.com/jun-qi/archive/2019/03/16/10543257.html
-Advertisement-
Play Games

1.最傳統方法 for迴圈 for… in for…of 雖然for… in 、 for… of 都能夠變曆數組,但是兩者還是有很大區別的,先說結論: 兩者的主要區別在於他們的迭代方式 推薦在迴圈對象屬性的時候,使用for in,在遍曆數組的時候推薦使用for of for…in 迴圈出來的是key ...


1.最傳統方法 for迴圈

 1  var arr = ["first","second","third","fourth",3,5,8];
 2  for(var i = 0; i < arr.length;i++){
 3         console.log(arr[i]);
 4     }
 5     //輸出:
 6      first
 7      second
 8      third
 9      fourth
10      3
11      5
12      8

for… in

 1 var arr = ["first","second",'third' ,"fourth",3,5,8];
 2 for(var i in arr){
 3      console.log(arr[i] +'/' + i);
 4  }
 5  //輸出結果為:
 6      first/0
 7      second/1
 8      third/2
 9      fourth/3
10      3/4
11      5/5
12      8/6

for…of

 1  var arr = ["first","second",'third' ,"fourth",3,5,8];
 2  for(var item of arr){
 3      console.log(item);
 4  }
 5  //輸出結果:
 6      first
 7      second
 8      third
 9      fourth
10      3
11      5
12      8

 

雖然for… in 、 for… of 都能夠變曆數組,但是兩者還是有很大區別的,先說結論:

兩者的主要區別在於他們的迭代方式

  • 推薦在迴圈對象屬性的時候,使用for in,在遍曆數組的時候推薦使用for of
  • for…in 迴圈出來的是key, for…of迴圈出來的是value
  • for…in 是ES5 標準,for …of 是ES6標準,相容性可能存在些問題,請註意使用
  • for…of 不能遍歷普通的對象,需要和Object.keys() 搭配使用

 2.foreach方法:被傳遞給foreach的函數會在數組的每個元素上執行一次,元素作為參數傳遞給該函數

 1     var arr = ["first","second","third","fourth",3,5,8];
 2     //element 表示arr的單元項,index 表示arr單元項對應的索引值
 3     arr.forEach(function(element,index){
 4         console.log(element + '/' + index);
 5 
 6     })
 7     //輸出結果:
 8       first/0
 9       second/1
10       third/2
11       fourth/3
12       3/4
13       5/5
14       8/6

註意:未賦值的值是不會在foreach迴圈迭代的,但是手動賦值為undefined的元素是會被列出的

 1  var arr1 = ["first","second", ,"fourth",3,5,8];
 2  arr1.forEach(function(element,index){
 3      console.log(element + '/' + index);
 4 
 5   })
 6   //輸出結果
 7      first/0
 8      second/1
 9      fourth/3
10      3/4
11      5/5
12      8/6

3.map 遍曆數組,並通過callback對數組元素進行操作,並將所有操作結果放入數組中並返回該數組

1  var arr = ["first","second",'third' ,"fourth"];
2  var arr2 = arr.map(function(item){
3     return item.toUpperCase();
4  })
5  console.log(arr2);
6  //輸出:
7  [FIRST,SECOND,THIRD, FOURTH]

4.filter( )返回一個包含所有在回調函數上返回為true的元素新數組,回調函數在此擔任的是過濾器的角色,當元素符和條件,過濾器就返回true,而filter則會返回所有符合過濾條件的元素

1 var arr = ["first","second",'third' ,"fourth",3,5,8];
2     var arr3 = arr.filter(function(item){
3         if(typeof item == 'number'){
4             return item;
5         }
6     })
7     console.log(arr3);
8     //輸出結果: 
9     [3,5,8]   

5. every() 當數組中的每一個元素在callback上被返回true時就返回true(註意:要求每一個單元項都返回true時才為true)

every()與filter()的區別是:後者會返回所有符合過濾條件的元素;前者會判斷是不是數組中的所有元素都符合條件,並且返回的是布爾值

1 var arr = ["first","second",'third' ,"fourth",3,5,8];
2 var bol = arr.every(function(element){
3     if(typeof element == 'string'){
4         return element;
5     }
6  })
7  console.log(bol); //false

6.some()只要數組中有一項在callback上就返回true

every()與some()的區別是:前者要求所有元素都符合條件才返回true,後者要求只要有符合條件的就返回true

1 var arr = ["first","second",'third' ,"fourth",3,5,8];
2     var bol = arr.some(function(element){
3         if(typeof element == 'string'){
4             return element;
5         }
6     })
7     console.log(bol); //true

7.findindex() ES6數組新API,找到符合條件的索引並返回

1 var ages = [3, 10, 18, 20];
2  
3 function checkAdult(age) {
4     return age >= 18;
5 }

function(currentValue, index,arr)

參數currentValue:必需。當前元素

index:可選。當前元素的索引

arr:可選.當前元素所屬的數組對象


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Android values資源是Xml格式的文件 上圖定義了顏色(colors)字元串(strings)樣式(style)三個資源文件 xml文件寫在resources標簽里 在安卓中引用資源 ...
  • Java的代碼 主要重點: findViewById(); OnClickListener() xml文件主要是設計手機界面(UI) 重點:控制項的運用 (Button TextView)以及屬性的設置 app界面如圖 ...
  • html標簽中有沒有什麼自帶的屬性可以存儲成績的 沒有 本身html標簽沒有這個屬性,自己(程式員)添加的, 自定義屬性 為了存儲一些數據 在html標簽中添加的自定義屬性,如果想要獲取這個屬性的值,需要使用getAttribute("自定義屬性的名字")才能獲取這個屬性的值 使用方法: 設置自定義 ...
  • 我安裝webpack時,出現如下錯誤: C:\Users\admin> npm install webpack -gnpm WARN checkPermissions Missing write access to C:\Users\admin\AppData\Roaming\npm\node_mo ...
  • Promise是一部編程的一種解決方案, 簡單說就是一個容器,裡面保存著麽謳歌未來才會結束的事件(通常是一個非同步操作)的結果 是為了簡化非同步對象,解決地獄回掉情況 Promise:有兩個回調函數:resolve:將對象的狀態從未完成變成成功 :reject:將對象的狀態從未完成變成失敗 下麵的代碼是 ...
  • 首先明白一點,JavaScript中的this指向只與函數的調用方式有關。判斷this指向誰,可以用下麵四條規則,並且四條規則的優先順序順序是從上到下的: 1. 如果函數是通過new操作符調用的,那麼this指向通過new創建的新對象; 2. 如果函數是通過call或apply方法調用的,那麼this ...
  • node.js的初級使用 作為一個全棧開發員怎麼能不會node.js了?至少得會用node搭載環境吧!話不多說直接開乾! 一、下載與安裝: 官網:http://nodejs.cn/ 中文文檔:http://nodejs.cn/api/ 下載好對應版本後直接雙擊安裝即可。 安裝完成後再命令行輸入:no ...
  • 效果截圖: ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...