用零填充时无法使 JavaScript 循环工作

Posted

技术标签:

【中文标题】用零填充时无法使 JavaScript 循环工作【英文标题】:Can't get JavaScript loop to work when padded with zeroes 【发布时间】:2013-02-25 01:57:54 【问题描述】:

尝试将一些 html 写入 001、002、003 样式格式的 div,但无法正常工作。

代码如下:

function loadpics(x, url) 
  var txt, i;
  txt = "";
  for(i = 1; i < x; i++) 
    txt = txt + String.format("%03d", i) + "<br/>";
  
  document.getElementById("myDiv").innerHTML = txt;

当我希望它能够工作时,我打算像这样将一些图像加载到 div 中:

function loadpics(x, url) 
  var txt, i;
  txt = "";
  for(i = 1; i < x; i++) 
    txt = txt + "<img src=\"" + url + "/t/" + String.format("%03d", i) + ".jpg\"></img><br/>";
  
  document.getElementById("myDiv").innerHTML = txt;

但无法使字符串格式正常工作。不完全确定我做错了什么。

如果有人能直截了当地告诉我,将不胜感激。

【问题讨论】:

您是否遇到任何错误? 什么是 String.format? javascript 不是 Java。 您是否要为数字添加填充? 感谢回复,很快就整理好了,谢谢=) 【参考方案1】:

将此添加到您的页面

function pad(number, length) 
  var str = '' + number;
  while (str.length < length) 
    str = '0' + str;
  
  return str;

并用这个替换txt=txt...

txt +=  "<img src='" + url + "/t/" + pad(i,3) + ".jpg'></img><br/>";

也可以看看this topic

【讨论】:

【参考方案2】:

尝试使用pad() 而不是String.format()

function pad(number, length) 
  var str = '' + number;
  while (str.length < length) 
    str = '0' + str;
  
  return str;

【讨论】:

以上是关于用零填充时无法使 JavaScript 循环工作的主要内容,如果未能解决你的问题,请参考以下文章

javascript 用零填充字符串

用零并行填充 std::vector

用零填充整数(Java)[重复]

带有嵌套for循环的Javascript多维数组-无法正常工作

用零填充缺失的用户输入

为啥我在使用 memset 用零填充对象后在 dynamic_cast 出现异常