使用jquery在变量中循环值

时间:2012-08-31 06:12:01

标签: javascript jquery loops

昨天我问了哪些问题已得到正确回答。现在我想花更多的时间来理解昨天回答的那个功能。在该函数循环中,在'num'变量中添加值'7'。我想知道它在'num'中的增加值。

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

3 个答案:

答案 0 :(得分:2)

在给定的代码中,当调用函数时,if条件检查传递的值中的每个字符串,当变量是数字时,执行以下代码

   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

答案 1 :(得分:1)

以下功能将更加简单。

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

答案 2 :(得分:1)

1次迭代:num = 0; // h

2次迭代:num = 0 * 10 + 7; // 7

3次迭代:num = 7 * 10 + 8; // 8

4次迭代:num = 78; // e

5次迭代:num = 78; // m