for循环为0到n的数字,带有数字规范

时间:2014-08-18 04:26:07

标签: javascript html

如何编写从0到n

的16位数字的for循环

我希望输出如下:

0000000000000000
0000000000000001
0000000000000002
0000000000000003
0000000000000004
0000000000000005

试过这个,但这不起作用:

for(i = 0000000000000000; i < 0000000000000010; i++){
    $("#TestDiv").append(i);
}

查看JSfiddle

3 个答案:

答案 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次。一切 小东西加起来,所以它可能很重要。

9. Stop touching the DOM, damnit!

答案 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);

DEMO