我希望做一些非常类似于以下PHP代码但在javascipt中的东西:
for ($weenumber = 1; $weenumber <= 30; $weenumber++)
{
$weenumber = str_pad($weenumber, 2, "0", STR_PAD_LEFT);
echo $_POST["entry{$weenumber}_cash"];
}
基本上访问用尾随0填充的循环数,如果小于10,但我不知道JS中的语法来执行此操作:(
对不起noob风格的问题
答案 0 :(得分:2)
我认为你的意思是领先的零而不是尾随零......
例如,您可以使用条件运算符:
(n < 10 ? '0' : '') + n
您还可以实现通用功能:
function padLeft(str, len, ch) {
while (str.length < len) str = ch + str;
return str;
}
要在Javascript中按名称访问对象属性,请使用括号。例如:
var value = obj['entry' + (n < 10 ? '0' : '') + n + '_cash'];
如果n
包含4
,则与obj.entry04_cash
相同。
答案 1 :(得分:0)
是否有特定的功能来执行此操作,如果您知道如何使用if
子句,并且知道如何执行字符串连接(如果您没有使用+
运算符),那么您应该能够轻松地手动滚动自己的str_pad
版本(适用于100以下的数字)。
考虑所涉及的案例(只有两个)以及在任何一种情况下你需要输出的内容。
答案 2 :(得分:0)
这是你应该使用的代码:
for(var i=0; i<30; i++){
document.writeln(i<10 ? "0"+i : i);
}
使用您想要处理数据的任何函数更改document.writeln()
答案 3 :(得分:0)
for (weenumber = 1; weenumber <= 30; weenumber++) {
weenumber = str_pad(weenumber, 2, "0", STR_PAD_LEFT);
}
对于str_pad()函数,您可以使用PHPJS库: http://phpjs.org/functions/str_pad:525
这个库也可以轻松地从php过渡到javascript。看看吧。
答案 4 :(得分:0)
for(var i=0; i<30; i++)
{
var index = i;
if(i<10) index = "0" + index
var elem = document.getElementById("entry"+index);
}
答案 5 :(得分:0)
这是一个可用于零重写的功能:
function zeroPad(nr,base){
var len = (String(base).length - String(nr).length)+1;
return len > 0? new Array(len).join('0')+nr : nr;
}
//usage
alert(zeroPad(3,10)); //=> 03
或扩展数字原型
Number.prototype.zeroPad = Number.prototype.zeroPad ||
function(base){
var nr = this, len = (String(base).length - String(nr).length)+1;
return len > 0? new Array(len).join('0')+nr : nr;
};
//usage
var num = 1;
alert(num.zeroPad(100)); //=> 001
现在对于变量名称部分:如果它是一个全局变量(不建议),那个变量是global object
的属性,在window
的浏览器中。您可以使用等效的window['myvariable'+myJustResolvedNumericValue]
通过其动态名称获取变量。在对象(实例)中,您可以使用相同的括号表示法:myObject['myvariable'+myJustResolvedNumericValue]
。
使用此信息,在javascript中您的功能可能如下所示:
for (var weenumber = 1; weenumber <= 30; weenumber++)
{
// execute something using the variable that uses the counter in the
// variable name as parameter
executeSomeFunction(window['entry'+weenumber.padLeft(10) + '_cash']);
}
答案 6 :(得分:0)
var someArray = [/*...*/];
for (var i= 1;i<= 30;i++)
{
var weenumber = i+"";
for(var j=weenumber.length;j<2;j++)
weenumber = "0" + weenumber;
var key = "entry" + weenumber + "_cash";
document.write(someArray[key]);
}