JavaScript中數組的各種操作方法

来源:http://www.cnblogs.com/liu-fei-fei/archive/2017/08/10/7340542.html
-Advertisement-
Play Games

【監測數組】 備註:ES3中使用instanceof操作符的前提是,當前頁面只有一個執行環境,當網頁中存在多個框架的時候,這種檢測方式出現問題;為瞭解決這個問題,ES5提出了第二種方法 備註:IE8是不支持這種檢測的,當然了對於其相容性還是可以實現的;不過現在對於IE8早已無人問津 【數組轉換字元串 ...


【監測數組】

  1. 使用instanceof操作符,進行檢測
    ar arr = [1,2,3];
    // arr = '非非';
    if(arr instanceof Array){
        console.log('是數組');
    }else{
        console.log('不是數組');
    }

    備註:ES3中使用instanceof操作符的前提是,當前頁面只有一個執行環境,當網頁中存在多個框架的時候,這種檢測方式出現問題;為瞭解決這個問題,ES5提出了第二種方法

  2. Array.inArray()方法
    var arr = [1,2,3];
    // arr = '非非';
    if(Array.isArray(arr)){
        console.log('是數組');
    }else{
        console.log('不是數組');
    }

    備註:IE8是不支持這種檢測的,當然了對於其相容性還是可以實現的;不過現在對於IE8早已無人問津

【數組轉換字元串】

  1. toString()方法
    var arr = [
        [1,2,3],
        ['非非','咖啡'],
        [8,9]
    ];
    console.log(arr.toString());//1,2,3,非非,咖啡,8,9
  2. join()方法
    var arr = [
        [1,2,3],
        ['非非','咖啡'],
        [8,9]
    ];
    console.log(arr.join(','));//1,2,3,非非,咖啡,8,9
    console.log(arr.join('||'));//1,2,3||非非,咖啡||8,9

【數組排序】

  1. reverse()反轉數組項的順序
    var arr = [1,2,3,4];
    var arr1 = ['非非','琪琪','艾艾'];
    console.log(arr.reverse());//[4, 3, 2, 1]
    console.log(arr1.reverse());//["艾艾", "琪琪", "非非"]
  2. sort()
    1. 預設情況下,按升序排列數組項(預設比較的是每一項的字元串形式,toString())
      var arr = [1,2,3,4];
      var arr1 = ['非非','琪琪','艾艾'];
      var arr2 = [1,2,3,4,11];
      console.log(arr.sort());//[1, 2, 3, 4]
      console.log(arr1.sort());// ["琪琪", "艾艾", "非非"]
      console.log(arr2.sort());//[1, 11, 2, 3, 4]
    2. sort()接受一個比較函數的參數
      function compare(value1, value2){
          if(value1 < value2){
              return -1;
          }else if(value1 > value2){
              return 1;
          }else{
              return 0;
          }
      }
      // 簡化比較函數
      function compare(value1, value2){
          return value1 - value2;
      }
      var arr = [1,2,3,4,11];
      console.log(arr.sort(compare));//[1, 2, 3, 4, 11]

【數組插入】

  1. push()從後面插入新項
    var arr = [1,2,3,4];
    arr.push(8,9)
    console.log(arr);//[1, 2, 3, 4, 8, 9]
  2. unshift()從前面插入新項
    var arr = [1,2,3,4];
    arr.unshift(8,9)
    console.log(arr);//[8, 9, 1, 2, 3, 4]
  3. splice()-插入
    var arr = [1,2,3,4,5];
    arr.splice(3,0,'非非')
    console.log(arr);//[1, 2, 3, "非非", 4, 5]

【數組刪除】

  1. pop()刪除數組最後一項
    var arr = [1,2,3,4];
    arr.pop()
    console.log(arr);//[1, 2, 3]
  2. shift()刪除數組第一項
    var arr = [1,2,3,4];
    arr.shift()
    console.log(arr);//[2, 3, 4]
  3. splice()-刪除
    var arr = [1,2,3,4,5,6,7,8,9];
    arr.splice(0,3)
    console.log(arr);//[4, 5, 6, 7, 8, 9]

【數組替換】

splice()-替換

var arr = [1,2,3,4,5];
arr.splice(2,1,'非非','琪琪')
console.log(arr);//[1, 2, "非非", "琪琪", 4, 5]

【數組位置查找】

var arr = [1,2,'非非',3,4,5,'非非','琪琪'];
console.log(arr.indexOf('非非'));//2
console.log(arr.lastIndexOf('非非'));//6

【數組合併】

concat()

var arr = [1,2,3,4,11];
var arr1 = ['非非','琪琪'];
console.log(arr.concat(arr1));// [1, 2, 3, 4, 11, "非非", "琪琪"]
console.log(arr1.concat(arr));//["非非", "琪琪", 1, 2, 3, 4, 11]

【數組截取】

slice(),接收一個或兩個參數,第一個參數是數組起始位置(結果包括起始位置項),第二個參數是結束位置(結果不包括結束項);支持負數,用長度length減去負數,就是當前項的位置

var arr = [1,2,3,4,5,6,7,8,9];
console.log(arr.slice(1));//[2, 3, 4, 5, 6, 7, 8, 9]
console.log(arr.slice(1,5));//[2, 3, 4, 5]
console.log(arr.slice(-3));//[7, 8, 9]
console.log(arr.slice(-4,-1));//[6, 7, 8]

【迭代方法】

  1. every()對數組中的每一項運行給定函數,如果該函數對每一項都返回true,則返回true
    var arr = [1,2,3,4,5,6,7,8];
    var everyMethods = arr.every(function(item, index, array){
        return item > 0;
    });
    console.log(everyMethods);//true
  2. filter()對數組中的每一項運行給定函數,返回該函數會返回true的項組成的數組
    var arr = [1,2,3,4,5,6,7,8];
    var filterMethods = arr.filter(function(item, index, array){
        return item > 6;
    });
    console.log(filterMethods);//[7, 8]
  3. forEach()對數組中的每一項運行給定函數。這個方法沒有返回值(與使用for迴圈迭代數組一樣
    var arr = [1,2,3,4,5,6,7,8];
    var forEachMethods = arr.forEach(function(item, index, array){
        console.log('item=>'+item);
        console.log('index=>'+index);
        console.log('array=>'+array);
    });
    console.log(forEachMethods);
    // item=>1
    // array.html:24 index=>0
    // array.html:25 array=>1,2,3,4,5,6,7,8
    // array.html:23 item=>2
    // array.html:24 index=>1
    // array.html:25 array=>1,2,3,4,5,6,7,8
    // array.html:23 item=>3
    // array.html:24 index=>2
    // array.html:25 array=>1,2,3,4,5,6,7,8
    // array.html:23 item=>4
    // array.html:24 index=>3
    // array.html:25 array=>1,2,3,4,5,6,7,8
    // array.html:23 item=>5
    // array.html:24 index=>4
    // array.html:25 array=>1,2,3,4,5,6,7,8
    // array.html:23 item=>6
    // array.html:24 index=>5
    // array.html:25 array=>1,2,3,4,5,6,7,8
    // array.html:23 item=>7
    // array.html:24 index=>6
    // array.html:25 array=>1,2,3,4,5,6,7,8
    // array.html:23 item=>8
    // array.html:24 index=>7
    // array.html:25 array=>1,2,3,4,5,6,7,8
  4. map()對數組中的每一項運行給定函數,返回每次函數調用的結果組成的數組
    var arr = [1,2,3,4,5,6,7,8];
    var mapMethods = arr.map(function(item, index, array){
        return item*2;
    });
    console.log(mapMethods);//[2, 4, 6, 8, 10, 12, 14, 16]
  5. some()對數組中的每一項運行給定函數,如果該函數對任一項返回true,則返回true
    var arr = [1,2,3,4,5,6,7,8];
    var someMethods = arr.some(function(item, index, array){
        return item > 6;
    });
    console.log(someMethods);//true

【歸併方法】

reduce()方法 and reduceRight()方法

這兩個方法,目前所知的使用方法比較簡單,在實際的開發中,完全可以採用其他方式達到這種效果,就先養著吧,萬一那一天我明白了,再補上


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

-Advertisement-
Play Games
更多相關文章
  • 0、未完,還有一部分未寫 1、CSS背景 屬性 描述 background 簡寫屬性,作用是將背景屬性設置在一個聲明中。 background-attachment 背景圖像是否固定或者隨著頁面的其餘部分滾動。 background-color 設置元素的背景顏色。 background-image ...
  • 非空驗證 <body> <table> <tr> <td>姓名:</td> <td><input type="text" name="TrueName" id="TrueName" /></td> </tr> ....省略其他input <tr> <td colspan="2"> <input ty ...
  • jsp:<div class="form-group"> <label >交易時間:</label> <input placeholder="開始日期" class="form-control layer-date" id="startDate" name="startDate"> <input p ...
  • 今天學習了PHP數組,整理下相關知識點。 PHP數組是什麼? php數組是一個能在單個變數中存儲多個值的特殊變數。 如:你有一個項目清單(人名清單),將其存儲到單個變數中,如下: 如果這個清單裡面有上百號人名,你要從中找到指定的某一個這樣會有點麻煩了。 解決這個問題的辦法就是創建一個數組。 數組可以 ...
  • 為什麼在input標簽類型為file上傳文件時在標簽中設置屬性 accpet="image/*",打開本地文件夾的速度特別慢? 經過測試發現,在mac裡面safari、Firefox、Chrome(opera不知道為啥老閃退)都沒有卡頓問題 在windows裡面,Firefox不卡頓,只有Chrom ...
  • 前言 首先第一步,先佈局html代碼如下: 上面一看第一個圖片img 就是實現圖片模糊效果的DOM元素,text-gradient實現的是流彩文字效果的DOM元素,border實現的是邊框伸展效果的DOM元素 想一想樣式該咋寫呢,根據這個佈局,我們先來實現圖片模糊效果。 圖片模糊效果 圖片模糊效果要 ...
  • [1]監聽事件 [2]事件修飾符 [3]滑鼠修飾符 [4]鍵值修飾符 [5]修飾鍵 ...
  • localStorage sessionStorage 和cookie localStorage localStorage是本地存儲的,除非清空本地數據 localStorage不會自動把數據發給伺服器,僅在本地保存。 localStorage只能存字元串,任何類型存儲的時候都會被自動轉換成字元串 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...