我在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');
}
答案 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');
}
答案 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));
}
答案 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');
}
参考文献:
答案 10 :(得分:0)
function pad(val, len) {
return ("000000000000000000" + val).substr(len * -1);
}
用法:
console.log(pad(1, 4) + ".jpg");
> 0001.jpg