簡體   English   中英

JavaScript整數數組錯誤

[英]Javascript Integer Array Error

我正在制作一個接受用戶輸入的函數,並且必須將其顯示為7個字符,即如果輸入42.54,它將顯示0004254。我的問題是我正在獲取一個整數並將其應用於數組,導致在應用時導致未定義的錯誤0的

function BackDataDefaultInput() {
// Balance
    var count;
    var newNum = "";
    var balanceText = document.getElementById('balanceNumBox').value;
    count = balanceText.length;

while (count > 0 && count < 7) {
    newNum += '0';
    count++
}
var formattedBalance = parseInt(balanceText, 10) * 100;
for (var i = 0; i < balanceText.length; i++) {
    formattedBalance[i] = new Array();
    // Error here showing as undefined for formattedBalance[i]
     newNum += formattedBalance[i];
}

在我必須將其乘以100以獲得正確的格式之前,此代碼有效。 因為我只是追加兩個字符串。 有人可以幫我想辦法嗎?

基元(如數字)是不可變的; 如果你有

var formattedBalance = parseInt(balanceText, 10) * 100;

您無法繼續重新分配索引屬性,例如

formattedBalance[i] = new Array();

使用正則表達式刪除(可能的)句點並使用padStart比將數組弄亂更容易:

 function BackDataDefaultInput() { const balanceText = '42.54'; // document.getElementById('balanceNumBox').value; console.log( balanceText .replace(/\\./g, '') .padStart(7, '0') ); } BackDataDefaultInput(); 

嘗試使用以下功能。

 var balanceText = "42.54"; //document.getElementById('balanceNumBox').value; var formattedBalance = balanceText * 100; function formatInteger(str, max) { str = str.toString(); return str.length < max ? formatInteger("0" + str, max) : str; } console.log(formatInteger(formattedBalance, 7)); 

如果有問題,請回答我的問題:

function BackDataDefaultInput() {
    var balanceText = document.getElementById('balanceNumBox').value;
    var balance = parseFloat(balanceText) * 100;
    balanceText = String(balance);

while (balanceText.length > 0 && balanceText.length < 7) {
    balanceText = '0' + balanceText;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM