1

私はJavaScriptで配列を持っています。画像 1 ~ 1050 の URL を指定します。私の画像は0001.jpg、0002.jpgなどの名前にする必要があります...しかし、私のスクリプトは1.jpg、2.jpgを呼び出しています...私はJSに非常に慣れていないため、ここからの回答をスクリプトに組み込むのに苦労しています.

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

11 に答える 11

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');
}

それが役立つことを願っています

于 2013-08-13T11:53:26.660 に答える
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');
}
于 2013-08-13T11:53:32.567 に答える
1

私はこのようなことをします

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

フィドル: http://jsfiddle.net/4z5Sd/

于 2013-08-13T11:56:10.390 に答える
1

汎用の文字列書式設定関数が必要な場合は、sprintfライブラリが機能する可能性があります。

var i, images = [];

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

JSFiddle

于 2013-08-13T12:10:14.960 に答える
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

于 2013-08-13T11:54:36.633 に答える
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');
于 2013-08-13T11:54:40.297 に答える
0

どうですか...

for (i = 1; i < 1050; i++) {        
    images.push('/images/' + ('0000'.substring(0, i.toString().length)+i) + '.jpg');
}
于 2013-08-13T11:54:50.667 に答える
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 フィドルのデモ

参考文献:

于 2013-08-13T11:58:32.023 に答える
0

これはどうですか:

for (var i = 1;i<1050;i++){
    images.push("/images/"+(Array(5-(""+i).length)).join("0")+i+".jpg");
} 
于 2013-08-13T11:57:01.017 に答える