溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

JS如何刪除數(shù)組指定值

發(fā)布時(shí)間:2020-07-18 14:28:11 來源:億速云 閱讀:127 作者:小豬 欄目:web開發(fā)

小編這次要給大家分享的是JS如何刪除數(shù)組指定值,文章內(nèi)容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。

一. 刪除數(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é)果:

JS如何刪除數(shù)組指定值

輸出的結(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é)果:

JS如何刪除數(shù)組指定值

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é)果:

JS如何刪除數(shù)組指定值

注意: 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é)果:

JS如何刪除數(shù)組指定值

注意: 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é)果:

JS如何刪除數(shù)組指定值

注意: findIndex只找到第一個(gè)符合條件的下標(biāo),找不到就返回 -1;

看完這篇關(guān)于JS如何刪除數(shù)組指定值的文章,如果覺得文章內(nèi)容寫得不錯(cuò)的話,可以把它分享出去給更多人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI