填入前导零的数字

  • 本文关键字:数字 javascript pad
  • 更新时间 :
  • 英文 :


我无法将函数链接到填充带有前导零的4数字。这里需要帮助。

<h2 id = 'fourDGenerator'>0000</h2>
<button id = 'ButtonReset' onclick="clickToReset()">RESET</button>     
<button id = 'Button4D' onclick="clickToGenerate()">GENERATE 4D NUMBER</button>   
<script src="script.js"></script>
const Button4D = document.getElementById('fourDGenerator')
let randomNumber = getRandomNumber();
function clickToGenerate (){Button4D.innerText = randomNumber}
function getRandomNumber(){eturn Math.floor(Math.random()*10000);}
let padTo4Numbers = getRandomNumber 
function padTo4Numbers() {('0000'+ getRandomNumber).slice(-4);}
function clickToReset () {location.reload()}```


您需要让函数在更改某个值后返回某个值。

对于填充数字,您可以使用string方法来更改值,然后省略切片。

function clickToGenerate() {
button4D.innerText = padTo4Numbers(getRandomNumber());
}
function getRandomNumber() {
return Math.floor(Math.random() * 10000);
}
function padTo4Numbers(value) {
return value.toString().padStart(4, 0);
}
function clickToReset() {
button4D.innerText = '____';
}
const button4D = document.getElementById('fourDGenerator');
<h2 id="fourDGenerator">____</h2>
<button id="ButtonReset" onclick="clickToReset()">RESET</button>
<button id="Button4D"' onclick="clickToGenerate()">GENERATE 4D NUMBER</button>

这是一个简化的演示,解决了代码中的一些错误:

function getRandomNumber(){
return Math.floor(Math.random()*10000);
}
function padTo4Numbers(n){
return ('0000'+ n).slice(-4);
}
function generate(){
const randomNumber = getRandomNumber();
const padded = padTo4Numbers(randomNumber);
document.querySelector('#target').innerText = padded;
}
#container{
width: 10rem;
}
#target{
border: solid 2px gray;
height: 3rem;
font-size: 3rem;
text-align: center;
}
button{
cursor: pointer;
}
<div id="container">
<div id="target"></div>
<button onclick="generate();">Generate Random Number</button>
</div>

您似乎已经实现了解决方案,从我如何用前导零填充值?:

let n = 1
var padded = ('0000'+n).slice(-4);
console.log(padded)

如何修复一个最小可复制的例子:

function getRandomNumber() {
return Math.floor(Math.random()* 10000);  // will it ever become less than 4 digits?
}
function padTo4Digits(n) { // renamed and parameterised 
return ('0000'+n).slice(-4);  // add return
}
// use both
let n = getRandomNumber(); 
console.log('random', n);
console.log('padded', padTo4Digits(n));
// real test
console.log('padded test', padTo4Digits(23));

最新更新