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>
如輸出所示,陣列中的前導零已被移除,並返回前導零之後的其餘元素。