我在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”中。
怎么了?
答案 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上为我工作