最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS刪除數(shù)組指定值常用方法詳解

 更新時間:2020年06月04日 15:36:03   作者:徐隱山  
這篇文章主要介紹了JS刪除數(shù)組指定值常用方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

一. 刪除數(shù)組中所有指定值

先看一種危險的方式:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
    <script type="text/javascript">
      window.onload = function() {
        var arr = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5];
        console.log(`原始數(shù)組:${arr}`);
        arr.forEach((item, i) => {
          if (item == 3) {
            arr.splice(i, 1); // 從下標 i 開始, 刪除 1 個元素
          }
        })
        console.log(`刪除之后的數(shù)組:${arr}`);
      }
    </script>
  </body>
</html>

輸出結(jié)果:

輸出的結(jié)果中,只刪除了一個3,這是因為splice方法刪除數(shù)組一個指定值之后,數(shù)組發(fā)生改變,后續(xù)的值向前挪動一個位置,在接下來的循環(huán)遍歷中,后面的3的下標由原本的5變成了4,這就導(dǎo)致刪除操作之后,接著找下標為5的值的時候,找不到后面的值3了,而從值為4的元素接著遍歷,當要刪除的值不確實是1個的時候,這種遍歷刪除是危險的方式;

1. 如果使用splice方法循環(huán)遍歷的方式刪除指定值,一種保險的方式是逆向遍歷:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
    <script type="text/javascript">
      window.onload = function() {
        var arr = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5];
        console.log(`原始數(shù)組:${arr}`);
        for (let i = arr.length - 1; i > -1; i--) {
          if (arr[i] == 3) {
            arr.splice(i, 1);
          }
        }
        console.log(`刪除之后的數(shù)組:${arr}`);
      }
    </script>
  </body>
</html>

輸出結(jié)果:

2. 使用filter方法過濾掉指定值:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
    <script type="text/javascript">
      window.onload = function() {
        var arr = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5];
        arr = arr.filter(item => item != 3); // 過濾掉值不為3,返回新數(shù)組
        console.log(`filter方法操作之后的數(shù)組:${arr}`);
      }
    </script>
  </body>
</html>

輸出結(jié)果:

注意: filter方法不改變原數(shù)組,只是返回一個新數(shù)組;

二. 刪除指定一個值

如果確定要刪除的值只有一個,除了遍歷查找刪除之后,還可以使用some方法:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
    <script type="text/javascript">
      window.onload = function() {
        var arr = [1, 2, 3, 4, 5];
        arr.some((item, i) => {
          if (item == 2) {
            arr.splice(i, 1);
            return true
          }
        })
        console.log(`刪除之后的數(shù)組:${arr}`);
      }
    </script>
  </body>
</html>

輸出結(jié)果:

注意: some方法找到符合條件的值手動返回true之后,不再接著遍歷(如果將some替換成forEach,return是不起作用的);

除此之外,還可以使用findIndex方法:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
    <script type="text/javascript">
      window.onload = function() {
        var arr = [1, 2, 3, 4, 5];
        console.log(`原始數(shù)組:${arr}`);
        var a = arr.findIndex(item => item == 3);
        arr.splice(a, 1);
        console.log(`刪除之后的數(shù)組:${arr}`);
      }
    </script>
  </body>
</html>

輸出結(jié)果:

注意: findIndex只找到第一個符合條件的下標,找不到就返回 -1;

詳情查看MDN中關(guān)于數(shù)組的介紹:

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 微信小程序?qū)崿F(xiàn)手寫簽名

    微信小程序?qū)崿F(xiàn)手寫簽名

    這篇文章主要為大家詳細介紹了微信小程序?qū)崿F(xiàn)手寫簽名,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • js實現(xiàn)input密碼框提示信息的方法(附html5實現(xiàn)方法)

    js實現(xiàn)input密碼框提示信息的方法(附html5實現(xiàn)方法)

    這篇文章主要介紹了js實現(xiàn)input密碼框提示信息的方法,涉及JavaScript頁面元素的獲取,屬性判斷及樣式設(shè)置等技巧,并附帶html5的相關(guān)實現(xiàn)方法,需要的朋友可以參考下
    2016-01-01
  • 詳解JS異步加載的三種方式

    詳解JS異步加載的三種方式

    這篇文章主要介紹了詳解JS異步加載的三種方式,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-03-03
  • web網(wǎng)頁按比例顯示圖片實現(xiàn)原理及js代碼

    web網(wǎng)頁按比例顯示圖片實現(xiàn)原理及js代碼

    由于上傳圖片的大小是未知的,在顯示成縮略圖的時候必須進行按比例的縮放才能美觀地顯示,本文將為大家簡單的介紹一種比較不錯的方法,有此需求的朋友可以參考下
    2013-08-08
  • JavaScript檢測彈出窗口是否已經(jīng)關(guān)閉的方法

    JavaScript檢測彈出窗口是否已經(jīng)關(guān)閉的方法

    這篇文章主要介紹了JavaScript檢測彈出窗口是否已經(jīng)關(guān)閉的方法,涉及javascript中window屬性的closed屬性的使用技巧,需要的朋友可以參考下
    2015-03-03
  • 微信小程序之左右布局的實現(xiàn)代碼

    微信小程序之左右布局的實現(xiàn)代碼

    這篇文章主要介紹了微信小程序之左右布局的實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • AngularJs+Bootstrap實現(xiàn)漂亮的計算器

    AngularJs+Bootstrap實現(xiàn)漂亮的計算器

    這篇文章主要為大家詳細介紹了angularJs+Bootstrap實現(xiàn)漂亮的計算器,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • JavaScript this在函數(shù)中的指向及實例詳解

    JavaScript this在函數(shù)中的指向及實例詳解

    這篇文章主要介紹了JavaScript this在函數(shù)中的指向及實例詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-10-10
  • eslint 的三大通用規(guī)則詳解

    eslint 的三大通用規(guī)則詳解

    這篇文章主要介紹了eslint 的三大通用規(guī)則詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-05-05
  • Javascript 閉包引起的IE內(nèi)存泄露分析

    Javascript 閉包引起的IE內(nèi)存泄露分析

    Javascript 閉包引起的IE內(nèi)存泄露分析,js_obj是一個DOM元素的引用,DOM元素它長期在網(wǎng)頁當中,不會消失,而這個DOM元素的一屬性
    2012-05-05

最新評論

盈江县| 汪清县| 塔城市| 大竹县| 保靖县| 凤城市| 普陀区| 安庆市| 浦东新区| 铜川市| 莱西市| 沙坪坝区| 星座| 双柏县| 宁夏| 林州市| 天峨县| 海丰县| 搜索| 灌阳县| 东阳市| 牡丹江市| 阜城县| 绵竹市| 理塘县| 兴化市| 吉木萨尔县| 庄浪县| 台前县| 长泰县| 惠来县| 类乌齐县| 赣榆县| 吉林省| 浦城县| 隆子县| 虹口区| 榆树市| 政和县| 温州市| 福鼎市|