JavaScript 中陣列去除前導零


本文的任務是在 JavaScript 中移除陣列中的前導零。在深入瞭解示例之前,讓我們透過檢視下面的輸入-輸出場景來了解問題。

輸入-輸出場景

讓我們來看一些輸入-輸出場景 -

假設我們有一個包含元素的陣列,其中陣列中的起始元素為零,任務是移除這些前導零。

Input = [0, 0, 0, 5, 67, 12, 4, 0, 5];
Output = [5, 67, 12, 4, 0, 5]

現在,考慮另一種場景,其中陣列中沒有前導零。

Input = [4, 0, 71, 3, 6, 0 ,5];
Output = [4, 0, 71, 3, 6, 0, 5]

我們在本文中使用多種方法執行給定的任務。讓我們逐一檢視它們並提供相應的示例。

使用 shift() 方法

JavaScript 中的 shift() 方法會移除陣列中的第一個元素,並返回該移除的元素。此方法會修改(更改)陣列的長度。

語法

以下是 JavaScript 中 shift() 方法的語法 -

shift();

其中,

shift() 方法將返回從陣列中移除的元素,如果陣列為空則返回 undefined

示例

在下面的示例中,

  • 我們建立了一個包含一些元素的陣列。為了移除陣列中的前導零,我們使用了 shift() 方法。

  • 只要在任何索引處存在 0,直到非零索引,shift() 方法就會移除它們。

  • 前導非零元素之後的元素將被推入我們建立的空陣列中。

<!DOCTYPE html>
<html>
<head>
   <title>Remove leading zeros in array - JavaScript</title>
</head>
<body>
   <script>
      const removeLeadingZeros = array => {
         let i=0;
         let ResArr = [];
         while(array[i]===0) {
            array.shift();
         }
         while(i<array.length){
            ResArr.push(array[i]);
            i++;
         }
         document.write(ResArr);
      }
      removeLeadingZeros(array = [0,0,4,0,23,43,7,0,6]);
      document.write("<br>");
      document.write("The length of array after removing the leading zero's: ", array.length);
   </script>
</body>
</html>

如輸出所示,陣列中的前導零已被移除,前導零之後的其餘元素被推入結果陣列。移除前導零後,原始陣列的長度減小了。

示例:使用一元 + 運算子

在下面的示例中,

  • 我們在陣列中有一個字串值,其中包含前導零。我們使用了一元加號 (+) 運算子來移除數字中的前導零。

  • 一元加號 (+) 運算子將透過移除所有前導零將字串值轉換為數字值。

<!DOCTYPE html>
<html>
<head>
   <title>Removing leading zeros</title>
   <button onClick = "func()"> Click! </button>
   <p id = "para"></p>
</head>
<body>
   <script>
      function func(){
         const number = ['00013040079'];
         const LeadingZeros = +number;
         document.getElementById("para").innerHTML = "Number after leading zero's are removed: " + LeadingZeros;
      };
   </script>
</body>
</html>

在輸出中,數字內的字串值透過移除前導零轉換為數字值。

使用 indexOf() 方法

JavaScript 中的 indexOf() 方法將返回陣列中值(搜尋值)第一次出現的索引。如果未找到搜尋值,此方法將返回 -1 作為輸出。

語法

以下是 JavaScript 中 indexOf() 方法的語法 -

array.indexOf(searchElement, startIndex)

其中,

  • 引數(searchElement)是要在陣列中搜索的元素。

  • 引數(startIndex)是要開始搜尋的索引。

示例

在下面的示例中,我們有一些陣列元素,其中包含一些前導零。我們使用了 indexOf() 方法來移除陣列中的前導零。只要在陣列的起始索引處存在 0,shift() 方法就會移除它們。

<!DOCTYPE html>
<html>
<head>
   <title>Removing leading zeros</title>
   <button onClick = "rec()"> Click! </button>
   <p id = "para"></p>
</head>
<body>
   <script>
      function rec(){
         const remove = array => {
            if (array.indexOf(0) === 0) {
               array.shift();
            };
         };
         remove(array = [0, 0, 3, 7, 10, 0, 33, 0]);
         document.getElementById("para").innerHTML = array;
      };
   </script>
</body>
</html>

如輸出所示,陣列中的前導零已被移除,並返回前導零之後的其餘元素。

更新於: 2022年12月19日

3K+ 閱讀量

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告