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+ 阅读量

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告