在javascript数组中将1转换为0001

时间:2013-08-13 11:50:57

标签: javascript

我在javascript中有一个数组。它指定图像1-1050的URL。我的图片必须命名为0001.jpg,0002.jpg等...但是我的剧本正在调用1.jpg,2.jpg ... 我是JS的新手,我正努力将here的答案与我的剧本结合起来。

for (i = 0001; i < 1050; i++) {
 images.push('/images/' + i + '.jpg');
}

11 个答案:

答案 0 :(得分:9)

结合你和你的链接:

for (i = 1; i < 1050; i++) {
  var str = "" + i
  var pad = "0000"
  str = pad.substring(0, pad.length - str.length) + str
  images.push('/images/' + str + '.jpg');
}

我希望有帮助

答案 1 :(得分:2)

您可以创建一个实用程序函数,将整数转换为4位字符串表示形式:

function intTo4digitsString(nb) {
   if(nb > 0 && nb < 10)
        return "000"+nb;
   else if(nb >= 10 && nb < 100)
        return "00"+nb;
   else if(nb >= 100 && nb < 1000)
        return "0"+nb;
}

此版本限制为4位数(并不像其他答案那样易于扩展),但我认为它更具可读性:)然后您可以使用:

for (i = 1; i < 1050; i++) {
    images.push('/images/' + inTo4DigitsString(i) + '.jpg');
}

答案 2 :(得分:1)

我会做这样的事情

for (i = 1; i < 1050; i++)
{
    var name = '0000' + i;
    images.push('/images/' + name.substr(name.length - 4) + '.jpg');
}

小提琴:http://jsfiddle.net/4z5Sd/

答案 3 :(得分:1)

谢谢mattsjo。不得不在数组中添加'pad'以使其完全正常工作。

for (i = 1; i < 1050; i++) {
  var str = "" + i
  var pad = "0000"
  var padd = pad.substring(0, pad.length - str.length) + str
  images.push('/images/' + padd + '.jpg');
}

答案 4 :(得分:1)

如果您想要通用字符串格式化功能,那么sprintf库可能适合您。

var i, images = [];

for (i = 1; i <= 1050; i++) {
    images.push(sprintf('/images/%04d.jpg', i));
}

JSFiddle

答案 5 :(得分:0)

zeropad = function( n,l ){ 
    var ret, d, i;
    ret = n === null || n === undefined ? '' : n.toString();
    // do we need to pad or truncate?
    d = l - ret.length;
    if (d>0) {
        for (i=0;i<d; i++) {
            ret = '0'+ret;
        }
    }
    return(ret);
};
images.push('/images/'+zeropad(i,4) + '.jpg');

从一个图书馆我写了一会儿。 https://github.com/deitch/jsorm-utilities

答案 6 :(得分:0)

function padNum(num,length)
{
    return Array((length+1)-num.toString().length).join("0")+num;
}

padNum(1,4);//0001
padNum(250,4);//0250

然后在你的代码中:

images.push('/images/' + padNum(i,4) + '.jpg');

答案 7 :(得分:0)

怎么样......

for (i = 1; i < 1050; i++) {        
    images.push('/images/' + ('0000'.substring(0, i.toString().length)+i) + '.jpg');
}

答案 8 :(得分:0)

这个怎么样:

for (var i = 1;i<1050;i++){
    images.push("/images/"+(Array(5-(""+i).length)).join("0")+i+".jpg");
} 

答案 9 :(得分:0)

我建议:

Number.prototype.leftPad = function (len) {
    var l = this.toString().length,
        d = len - l;
    return new Array(d + 1).join('0') + this.toString();
};

for (var i = 1, len = 1051; i < len; i++) {
    console.log(i.leftPad(4) + '.jpg');
}

JS Fiddle demo

参考文献:

答案 10 :(得分:0)

function pad(val, len) {
    return ("000000000000000000" + val).substr(len * -1);
}

用法:

console.log(pad(1, 4) + ".jpg");
> 0001.jpg