使用jquery的变量循环值
问题描述:
昨天我问了哪些问题已被正确回答。现在我想花更多的时间来理解昨天回答的功能。在该函数循环中,在'num'变量中增加了值'7'。我想知道它如何在'num'中增加值。使用jquery的变量循环值
var Arr = [ 'h78em', 'w145px', 'w13px' ]
function stringToNum(str){
num = 0;
for (i = 0; i < str.length; i++)
if (str[i] >= '0' && str[i] <= '9')
num = num * 10 + parseInt(str[i]);
return num;
}
alert(stringToNum(Arr[0]));
这里是fiddle
答
在给定的代码,当函数被调用时,如果条件检查在传递的值每串当变量是数字时,执行以下代码
if (str[i] >= '0' && str[i] <= '9')
num = num * 10 + parseInt(str[i]);
所以在给定的字符串中,第一个数字是7
。由于num
值是初始为零num的值将是,
num=(0 *10) + 7
所以num=7
在数的第一次出现。上一个数的第二出现时ie 8
num的值将是,
num=(7*10)+8
因此值为78
+0
非常感谢主席先生。你有非常好的解释方式。 – Carlos
答
下面这个函数会简单得多。
function stringToNum(str) {
return +str.replace(/\D/g, '');
}
更新:
与您的代码:
init : num = 0
met 7: num = 0 * 10 + 7 -> num = 7
met 8: num = 7 * 10 + 8 -> num = 78
答
1次迭代:num = 0; // h
2迭代:num = 0 * 10 + 7; // 7
3次迭代:num = 7 * 10 + 8; // 8
4迭代:num = 78; // e
5迭代:num = 78; // m
MDAS规则适用你通过10首先乘以NUM添加解析值之前,因此0 * 10 + 78 = 78 – ianace
如果删除* 10 + parseInt函数(STR [1]);然后警报号它会返回7,我想知道它是如何7传递给num变量 – Carlos