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

jesterkenting · 2014年08月24日 · 最后由 jesterkenting 回复于 2014年08月24日 · 1616 次阅读

初学 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__ 你是对的,非常感谢

需要 登录 后方可回复, 如果你还没有账号请 注册新账号