如何编写从0到n
我希望输出如下:
0000000000000000
0000000000000001
0000000000000002
0000000000000003
0000000000000004
0000000000000005
试过这个,但这不起作用:
for(i = 0000000000000000; i < 0000000000000010; i++){
$("#TestDiv").append(i);
}
查看JSfiddle
答案 0 :(得分:3)
查看使用slice
方法。例如:
var addLeadingZeros = function(number){
var str = "0000000000" + number; // add leading zeros for single digit number
return str.slice(-10); // slice the whole number down from the end
}
for(var i = 0; i < 100; i++){
$("#TestDiv").append(addLeadingZeros(i));
}
答案 1 :(得分:1)
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script>
function writeNumber(n){
var nLen = n.toString().length;
var zeroLen = 16-nLen;
var arr = [];
var str = "0";
for(var z=0;z<zeroLen;z++){
arr.push(str);
}
arr.push(n.toString());
return arr.join('');
}
window.onload = function () {
var arr = [];
for(i=0;i<11;i++){
var str = writeNumber(i);
arr.push(str);
}
document.getElementById("testDiv").innerHTML = arr.join('<br>');
};
</script>
<div id="testDiv"></div>
</body>
</html>
使用数组效率更高。也许这个循环只有10个项目并不重要,但是如果你在循环中访问DOM而不是在循环外只有1次,那么你将写入DOM 10次。一切 小东西加起来,所以它可能很重要。
答案 2 :(得分:0)
这不起作用,因为数字00000001
等于1
。你必须使用字符串。
使用像bellow
var str = '';
var zeros = '0000000000000000'; //string of 16 0's
for(i=0;i<11;i++){
var temp = zeros.slice(i.toString().length); // get the 0's 16-length of i
str += temp+i+'<br>';
}
$("#TestDiv").append(str);