新手问题 Javascript object 属性遍历的问题

jesterkenting · August 24, 2014 · Last by jesterkenting replied at August 24, 2014 · 1626 hits

初学 javascript,不知为何这个 object 的属性遍历总是失败?

<!DOCTYPE HTML>
<html>
    <body>
        <script>
            function isNumeric(n)
            {
                return !isNaN(parseFloat(n)) && !isFinite(n);
            }
            function multiplyNumeric(obj)
            {
                for(var key in obj){
                    var tem = obj[key];
                    if(isNumeric(tem)){
                        obj[key] = tem * 2;
                    }
                }
            }
            var menu = {
                width  : "200",
                height : "400",
                title  : "My menu"
            };
            alert(menu.toSource());
            multiplyNumeric(menu);
            alert(menu.toSource());
        </script>
    </body>
</html>

参考 isFinite 函数用法 http://www.w3school.com.cn/jsref/jsref_isFinite.asp 所以需要修改为:

return !isNaN(parseFloat(n)) && isFinite(n); 
function isNumeric(n) {
  var i = +n;
  return ([]).toString.call(i) === '[object Number]' && i === i;
}

@small_fish__ 你是对的,非常感谢

You need to Sign in before reply, if you don't have an account, please Sign up first.