JavaScript parseInt IE Nan错误

时间:2011-10-25 16:54:26

标签: javascript internet-explorer parseint

我在JavaScript中有功能:

function calc(num) {
    if (num <= 22) {
            return parseInt(num);
    } else {
            num += '';
            var curr = 0;
            for (var i = 0; i < num['length']; i++) {
                    curr += parseInt(num[i]);
            };
            return curr;
    };
};

此函数计算新数字,如: 如果我的数字大于22,则此函数返回新数字,它是其子数的总和(例如28> 22 =&gt;返回(2 + 8))。

此功能在Firefox中运行良好,但我在Internet Explorer中遇到数字大于22的“NaN”错误。所以问题必须在“else”中。

怎么了?

2 个答案:

答案 0 :(得分:7)

您需要num.charAt(i),因为您无法在IE中使用String[offset]访问字符串字符。

s = "qwe"; alert(typeof s[1] === 'undefined')true

答案 1 :(得分:1)

试试这个:

function calc(num) {
    if (num <= 22) {
            return parseInt(num);
    } else {
            number = num.toString();
            var curr = 0;
            for (var i = 0; i < number.length; i++) {

                    curr += parseInt(number.charAt(i));
            };
            return curr;
    };
};


alert(calc(23));

在firefox和IE上为我工作