访问Javascript中变量名中的计数器(内部代码)
我希望在javascipt中执行与以下PHP代码非常类似的操作:访问Javascript中变量名中的计数器(内部代码),javascript,variables,padding,Javascript,Variables,Padding,我希望在javascipt中执行与以下PHP代码非常类似的操作: for ($weenumber = 1; $weenumber <= 30; $weenumber++) { $weenumber = str_pad($weenumber, 2, "0", STR_PAD_LEFT); echo $_POST["entry{$weenumber}_cash"]; } 对于($weenumber=1;$weenumber我想你指的是前导零而不是尾随零 例如,可以使用条件
for ($weenumber = 1; $weenumber <= 30; $weenumber++)
{
$weenumber = str_pad($weenumber, 2, "0", STR_PAD_LEFT);
echo $_POST["entry{$weenumber}_cash"];
}
对于($weenumber=1;$weenumber我想你指的是前导零而不是尾随零
例如,可以使用条件运算符:
(n < 10 ? '0' : '') + n
(n<10?'0':'')+n
您还可以实现一个通用功能:
function padLeft(str, len, ch) {
while (str.length < len) str = ch + str;
return str;
}
左键功能(str、len、ch){
而(str.length
要在Javascript中按名称访问对象属性,请使用括号。示例:
var value = obj['entry' + (n < 10 ? '0' : '') + n + '_cash'];
var value=obj['entry'+(n<10?'0':'')+n+'u cash'];
如果n
包含4
,这将与obj.entry04\u cash
相同,无论是否有特定的函数来执行此操作,如果您知道如何使用If
子句,并且您知道如何执行字符串合并(如果没有,则使用+
操作符),然后您应该能够轻松地手动滚动自己版本的stru pad
(适用于100以下的数字)
考虑所涉及的案例(只有两种)以及在这两种情况下需要输出的内容。这是您应该使用的代码:
for(var i=0; i<30; i++){
document.writeln(i<10 ? "0"+i : i);
}
for(var i=0;ifor(weenumer=1;weenumerfor(var i=0;i以下是一个可用于零填充的函数:
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
现在来看变量名部分:如果它是一个全局变量(不可取),那么该变量是全局对象的属性,在窗口的浏览器中。您可以使用对象(实例)中的以下等价项通过其动态名称获取变量:窗口['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']);
}
for(var weenumber=1;weenumbervar someArray=[/*…*/];
对于(var i=1;iYou的意思是“如果小于10,则用前导的0
填充”,对吗?这是其中的一部分,主要是在变量中引用变量的语法:PHP中的条目{$i}将给出:entry01 for instanceGoogle Jon具体是什么?我尝试过“在javascript中引用变量”非常感谢大家的帮助,当然还有Guffa。我真的很喜欢这个网站和帮助的人:)再次感谢大家!
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
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']);
}
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]);
}