1

我在 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 => return (2+8) )。

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

怎么了?

4

2 回答 2

7

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

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

于 2011-10-25T17:01:13.917 回答
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 上为我工作

于 2011-10-25T17:03:40.647 回答