首页 > 代码库 > POJ 1958 Strange Towers of Hanoi (线性dp,记忆化搜索)
POJ 1958 Strange Towers of Hanoi (线性dp,记忆化搜索)
JQuery工具方法.
(1)$.isNumeric(obj)
此方法判断传入的对象是否是一个数字或者可以转换为数字.
isNumeric: function( obj ) {
// parseFloat NaNs numeric-cast false positives (null|true|false|"")
// ...but misinterprets leading-number strings, particularly hex literals ("0x...")
// subtraction forces infinities to NaN
return obj - parseFloat( obj ) >= 0;
},
用‘-‘号先将obj转换为数字,这么做是因为如果传入的字符串中含有非数字字符,那么obj将被转换为NaN,isNumeric将返回false.
alert( ‘55a‘-0) //NaN
注意:js的原生方法parseFloat在处理16进制字符串时会出现转换错误,他会取16进制的标志0x的0.....
var f = parseFloat(‘0xAAAA‘ , 2);
alert(f); //0
Test_Script
var obj = {toString: function(){
return ‘6‘ ;
}};
var f = $.isNumeric(obj);
alert(f);//true
(2)isPlainObject(obj)
此方法判断传入的对象是否是‘纯净‘的对象,即使用字面量{},或new Object()创建的对象.
Test_Script
function Person(name, age) {
this .name = name;
this .age = age;
};
var p = $.isPlainObject( new Person());
alert(p); //false
alert($.isPlainObject({})); //true
alert($.isPlainObject(document.getElementById( ‘div1‘))); //false
isPlainObject(obj)源码
isPlainObject: function( obj ) {
//不是object或者是DOM元素或是window返回false
if ( jQuery.type( obj ) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) {
return false ;
}
// Support: Firefox <20
// The try/catch suppresses exceptions thrown when attempting to access
// the "constructor" property of certain host objects, ie. |window.location|
// https://bugzilla.mozilla.org/show_bug.cgi?id=814622
try {
//是自定义对象返回false
//判断自定义对象的依据是如果isPrototypeOf方法是从{}的原型对象中继承来的那么便是自定义对象
if ( obj.constructor &&
!hasOwn.call( obj.constructor.prototype, "isPrototypeOf" ) ) {
return false ;
}
} catch ( e ) {
return false ;
}
// If the function hasn‘t returned already, we‘re confident that
// |obj | is a plain object, created by {} or constructed with new Object
return true ;
},
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。