Javascript整数数组错误

Javascript Integer Array Error

我正在制作一个接受用户输入并且必须将其显示为 7 个字符的函数,即如果输入 42.54,它将显示 0004254。我的问题是我正在获取一个整数并将其应用于数组导致应用 0's

时出现未定义错误
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;
    }
}