欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

先看一種危險(xiǎ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}`);
        arr.forEach((item, i) => {
          if (item == 3) {
            arr.splice(i, 1); // 從下標(biāo) i 開始, 刪除 1 個(gè)元素
          }
        })
        console.log(`刪除之后的數(shù)組:${arr}`);
      }
    </script>
  </body>
</html>

輸出結(jié)果:

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

1. 如果使用splice方法循環(huán)遍歷的方式刪除指定值,一種保險(xiǎ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方法不改變?cè)瓟?shù)組,只是返回一個(gè)新數(shù)組;

二. 刪除指定一個(gè)值

如果確定要?jiǎng)h除的值只有一個(gè),除了遍歷查找刪除之后,還可以使用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方法找到符合條件的值手動(dòng)返回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只找到第一個(gè)符合條件的下標(biāo),找不到就返回 -1;

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

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

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

相關(guān)文章

  • 基于JavaScript實(shí)現(xiàn)焦點(diǎn)圖輪播效果

    基于JavaScript實(shí)現(xiàn)焦點(diǎn)圖輪播效果

    這篇文章主要為大家詳細(xì)介紹了基于JavaScript實(shí)現(xiàn)焦點(diǎn)圖輪播效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • 使用TypeScript?V8來改進(jìn)您的JavaScript代碼

    使用TypeScript?V8來改進(jìn)您的JavaScript代碼

    TypeScript?V8是一個(gè)強(qiáng)大的JavaScript類型系統(tǒng),它可以幫助你發(fā)現(xiàn)JavaScript代碼中的錯(cuò)誤和潛在問題,并在編譯時(shí)捕獲它們,以便您可以解決它們,TypeScript?V8為JavaScript提供一系列的類型注釋,包括自定義類型和其他高級(jí)功能
    2023-08-08
  • javascript實(shí)現(xiàn)點(diǎn)擊圖片切換

    javascript實(shí)現(xiàn)點(diǎn)擊圖片切換

    這篇文章主要介紹了javascript實(shí)現(xiàn)點(diǎn)擊圖片切換,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • 原生js實(shí)現(xiàn)簡(jiǎn)單輪播圖效果

    原生js實(shí)現(xiàn)簡(jiǎn)單輪播圖效果

    這篇文章主要為大家詳細(xì)介紹了原生js實(shí)現(xiàn)簡(jiǎn)單輪播圖效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • js實(shí)現(xiàn)的簡(jiǎn)單radio背景顏色選擇器代碼

    js實(shí)現(xiàn)的簡(jiǎn)單radio背景顏色選擇器代碼

    這篇文章主要介紹了js實(shí)現(xiàn)的簡(jiǎn)單radio背景顏色選擇器代碼,利用鼠標(biāo)事件及頁面元素動(dòng)態(tài)操作實(shí)現(xiàn)頁面背景顏色的改變功能,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-08-08
  • JS插件amCharts實(shí)現(xiàn)繪制柱形圖默認(rèn)顯示數(shù)值功能示例

    JS插件amCharts實(shí)現(xiàn)繪制柱形圖默認(rèn)顯示數(shù)值功能示例

    這篇文章主要介紹了JS插件amCharts實(shí)現(xiàn)繪制柱形圖默認(rèn)顯示數(shù)值功能,結(jié)合實(shí)例形式分析了amCharts插件繪制柱形圖并顯示數(shù)值的相關(guān)操作技巧,需要的朋友可以參考下
    2019-11-11
  • 嘗試在讓script的type屬性等于text/html

    嘗試在讓script的type屬性等于text/html

    我們可以在script片斷中定義一個(gè)被JS調(diào)用的代碼,但代碼又不在頁面上顯示,這時(shí),我們可以使用下面的方法;當(dāng)script中的type等于text/html時(shí)我們可以做些什么呢?感興趣的朋友可以了解下啊
    2013-01-01
  • 微信小程序?qū)崿F(xiàn)點(diǎn)擊文字頁面跳轉(zhuǎn)功能【附源碼下載】

    微信小程序?qū)崿F(xiàn)點(diǎn)擊文字頁面跳轉(zhuǎn)功能【附源碼下載】

    這篇文章主要介紹了微信小程序?qū)崿F(xiàn)點(diǎn)擊文字頁面跳轉(zhuǎn)功能,涉及navigator導(dǎo)航組件的簡(jiǎn)單使用技巧,并附帶源碼供讀者下載參考,需要的朋友可以參考下
    2017-12-12
  • JavaScript實(shí)現(xiàn)LRU緩存的三種方式詳解

    JavaScript實(shí)現(xiàn)LRU緩存的三種方式詳解

    LRU全稱為L(zhǎng)east?Recently?Used,即最近使用的。針對(duì)的是在有限的內(nèi)存空間內(nèi),只緩存最近使用的數(shù)據(jù)(即get和set的數(shù)據(jù))。本文介紹了JavaScript實(shí)現(xiàn)LRU緩存的三種方式,需要的可以參考一下
    2022-06-06
  • 有道JavaScript監(jiān)聽瀏覽器的問題

    有道JavaScript監(jiān)聽瀏覽器的問題

    相信大家在web項(xiàng)目中,經(jīng)常會(huì)用到j(luò)avascript的事件監(jiān)聽、事件冒泡這些東西。當(dāng)然也包括window.opener,window.showModalDialog這些父子窗口的互操作。
    2010-06-06

最新評(píng)論