數組方法詳解

来源:https://www.cnblogs.com/bigharbour/archive/2019/09/02/11416061.html
-Advertisement-
Play Games

JS數組的方法眾多,平時在使用的時候,容易忘記某些不常用的數組方法,而且時長把兩個差不多的方法搞混。而且ES6在ES5的基礎上又新增了一些方法,為了方便記憶,就寫篇博客方便記憶,沒事的時候拿出來看看。 數組方法: 1.push() 用法:在數組的最後一位添加數據,同時返回插入後的數組長度。 var ...


JS數組的方法眾多,平時在使用的時候,容易忘記某些不常用的數組方法,而且時長把兩個差不多的方法搞混。而且ES6在ES5的基礎上又新增了一些方法,為了方便記憶,就寫篇博客方便記憶,沒事的時候拿出來看看。

數組方法:

方法 用法  是否改變原有數組
push 在最後一位新增一個或多個數據,返回數組的長度  y
pop 刪除最後一位,並返回刪除的數據 y
unshift 在第一位新增一個或多個數據,返回數組的長度 y
shift 刪除第一位,並返回刪除的數據 y
join 使用分隔符,將數組轉為字元串並返回 n
toString 直接轉為字元串,並返回 n
slice 截取指定位置的數組,並返回截取的數組。 n
spclice 刪除指定位置項,並替換,返回刪除的數據 y
sort 排序(字元規則),返回結果 y
reverse 反轉數組 y
valueOf 返回對象數組的原始值 n
indexOf 查詢並返回數組的索引 n
lastIndexOf 從尾部開始查詢並返回數據的索引 n
forEach 參數為回調函數,會遍曆數組所有的項,回調函數接受三個參數,分別為value,index,self。無返回值 n
map 同forEach,同時回電函數返回布爾值,組成新數組由map返回 n
filter 同forEach,同時回調函數返回布爾值,為true的數據組成新數組由filter返回 n
every 同forEach,同時回調函數返回布爾值,全部為true,由every返回true n
some 同forEach,同時回調函數返回布爾值,只要由一個為true,由some返回true n
reduce 歸併,同forEach,迭代數組的所有項,並構建一個最終值,由reduce返回 n
reduceRight 反向歸併,同forEach,迭代數組的所有項,並構建一個最終值,由reduceRight返回 n

 

1.push()

用法:在數組的最後一位添加數據,同時返回插入後的數組長度。

var arr = [9,2,3,4,5];
var a = arr.push(8); // 返回數組長度 console.log(a); console.log(arr);   結果為:  6       9 2 3 4 5 8   2.pop 用法:刪除最後一位,並返回刪除的數據 var arr = [9,2,3,4,5];   var a1 = arr.pop(); // 返回數組最後一個數 console.log(a1) console.log(arr) 結果為: 5       9 2 3 4   3.unshift 用法:在第一位新增數據,返回操作後的數組長度   var arr = [9,2,3,4,5];   var c = arr.unshift(3); // 返回數組的長度 console.log(c) console.log(arr);   結果為:6     6 9 2 3 4 5   4.shift 用法:刪除第一位,並返回刪除的數據 var arr = [9,2,3,4,5];   var b = arr.shift(); // 返回數組的第一個數 console.log(b); console.log(arr)   5.join 用法:使用分隔符,將數組轉為字元串並返回   var arr = [9,2,3,4,5];   var str = arr.join( " ," ); console.log(str); console.log(arr);   結果:9,2,3,4,5      9 2 3 4 5   6.toString 用法: var arr = [9,2,3,4,5]; document.write(arr.toString());   結果為:9,2,3,4,5   7.slice   var arr = [9,2,3,4,5];   8.splice 用法:刪除指定位置,並替換,返回刪除的數據 var arr = [9,2,3,4,5];   var d = arr.splice(2,2,10,24); // splice() 方法返回一個包含已刪除項的數組: console.log(d); console.log(arr);   結果為:3,4     9,2,10,24,5   9.sort 用法:對數組中的元素進行排序,預設是升序 var arr = [9,2,3,4,5];   console.log(arr.sort()); console.log(arr); 結果為 [2,3,4,5,9 ]     [2,3,4,5,9 ]   但是在排序前,會先調用數組的toString方法,將每個元素都轉成字元之後,再進行排序,此時會按照字元串的排序,逐位比較,進行排序。 var arr = [91,23,43,54,115];   console.log(arr.sort()); console.log(arr);   結果為:[115,23,43,54,91]     [115,23,43,54,91]   如果需要按照數值排序,需要傳參. var arr = [91,23,43,54,115];   console.log(arr.sort(fn)); console.log(arr);   function fn(a,b){   return a-b }   結果為:[ 23,43,54,91,115 ]     [ 23,43,54,91,115 ] 10.reverse  用法:反轉數組 var arr = [9,2,3,4,5];   console.log(arr.reverse());   結果為:[5,4,3,2,9]   11.valueOf  用法:返回數組對象的原始值   valueOf() 方法通常由 JavaScript 在後臺自動調用,並不顯式地出現在代碼中。   12.indexOf   用法:查詢並返回數據的索引   var arr = [9,2,3,4,5]; console.log(arr.indexOf(4));   結果為:3   13.lastindexOf    用法:反向查詢並返回數據的索引   var arr = [9,2,3,4,5]; console.log(arr.lastIndextOf(3));   結果為:2  14.forEach   用法:參數為回調函數,會遍曆數組所有的項,回調函數接受三個參數,分別為value,index,self;forEach沒有返回值   var arr = [9,2,3,4,5];   var a= arr.forEach(function(value,index,self){   console.log(value +“,”+ index+“,” + self); })   結果為:9,0, 9,2,3,4,5     2,1, 9,2,3,4,5     3,2, 9,2,3,4,5     4,3, 9,2,3,4,5     5,4, 9,2,3,4,5 15.map  用法:同forEach,同forEach,同時回調函數返回數據,組成新數組由map返回 var arr = [9,2,3,4,5];   var a  = arr.map(function( value,index,self ){   return 2 + value; }) console.log(a) 結果為:            11        4        5        6        7 16.filter   用法:同forEach,同時回調函數返回布爾值,為true的數據組成新數組由filter返回   var arr = [9,2,3,4,5];   var a = arr.filter(function(value,index,0){   return value>4; }) console.log(a); 結果為:[ 9,5 ]   17.some  用法:同forEach(),判斷數組中是否存在滿足條件的項,只要有一項滿足條件,就會返回true。 var arr = [9,2,3,4,5]; var a = arr.some(function(value,index,self){   return value>4 })  console.log(a)   結果為:[9,2,3,4,5]   18.every    用法:同forEach(),判斷數組中是否存在滿足條件的項,只有所有項滿足條件,才會返回true。 var arr = [9,2,3,4,5]; var a = arr.some(function(value,index,self){   return value>4 })  console.log(a)   結果為:[]   19.reduce 用法: 從數組的第一項開始,逐個遍歷到最後,迭代數組的所有項,然後構建一個最終返回的值。接受四個參數,分別為 total, currentValue, currentIndex, arr。reduce() 對於空數組是不會執行回調函數的。

var numbers = [15.5, 2.3, 1.1, 4.7]; function getSum(total, num) {   return total + Math.round(num); }   function myFunction(item) {   document.getElementById("demo").innerHTML = numbers.reduce(getSum, 0); }   結果為:24   20.reduceRight   用法:同reduce。但索引方向與reduce相反。 var numbers = [2, 45, 30, 100];   function getSum(total, num) {   return total - num; } function myFunction(item) {   document.getElementById("demo").innerHTML = numbers.reduceRight(getSum); } 結果為:23
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 首先無論你要學習任何技能,必須有一個清晰的版圖,什麼是清晰的版圖呢?首先瞭解你學的技術將來要從事什麼工作,這個工作的條件是哪些? 然後你要有一個非常清晰的學習大綱,切記學習任何東西都要系統,不可胡亂的瞎學浪費時間 下麵是小編給大家提供的一個學習大綱: 基礎:HTML+CSS網站頁面搭建,CS核心和P ...
  • 溫習一下元素水平垂直居中的幾種方法 元素有具體寬度 1、absolute+負邊距 .LV_center{ border: 1px solid red; position: absolute; width: 100px; height: 100px; top:50%; left: 50%; margi ...
  • 先上圖 功能: 1、上拉日曆摺疊,展示周 2、左右滑動切換月 2、“今天”回到今天;“+”添加日程 3、localStorage存儲日程 index,html <body> <div id="app" v-cloak @mousedown="down" @mouseup="heightChange" ...
  • ![知識點彙總知識圖譜](https://img2018.cnblogs.com/blog/1512305/201909/1512305-20190902114509974-1787421746.png) ...
  • const portfinder = require('portfinder'); const port = await portfinder.getPortPromise(); 兩行代碼 埠搜索範圍 預設情況下,portfinder將開始搜索8000並掃描,直到達到最大埠號(65535) 源碼 ...
  • JS一個重要功能就是操作DOM, 改變頁面顯示。 目錄: 1、基本概念 2、節點類型 3、節點關係 4、節點操作 基本概念 DOM全稱為Document Object Model ,即文檔對象模型,是針對HTML和XML的一個API, 描繪了一個層次化的節點樹,可以添加、移除和修改頁面的某一部分。 ...
  • 雲計算和移動計算令已經很脆弱的身份及訪問管理(IAM)基礎設施更加搖搖欲墜。問題的日益嚴重推動單點登錄、多因數身份驗證、IAM集中化等領域出現相應變革。 " " 幾年前,CISO們就感受到了雲計算和移動計算時代維持安全控制的艱難。隨著雲計算和移動計算的興起,身份和數據安全已經變成了新的安全邊界,企業 ...
  • 雲已經改變了我們工作的方式,且在不遠的將來,這一動作仍將持續。在雲為員工提供各種便利,為公司企業帶來成本節約、價值提升、工序縮減等收益的同時,新的挑戰也隨之而來。Gartner預測,到2020年, 90% 的企業都將管理 由雲和內部解決方案組成的混合IT基礎設施 ,這無疑會使得安全挑戰和困難變得更加 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...