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>
如输出所示,数组中的前导零已被移除,并返回前导零之后的其余元素。